Jump to content

Recommended Posts

Posted
12 hours ago, genius257 said:

You could generate an icon with text?

Thanks, but is too much work... I tryed made some, but I'll need a very lot of them.

Anyway, is a good ideia know how to put a text there!

 

Posted (edited)

You can use GDI+ for it.

Make the text in GDI+ and make this script work for you.

This code makes a icon of it, and that is what you can show in the systray.

It's a function I use in code of my own, you need to adjust it to make it work for your project, this is a good start.

Func _CreateIconFile($file_in, $file_out)
    Local $a_hBitmap[2], $hIcon, $hPng, $sPath, $tData, $pBits, $g_hDll, $aDim

    $hPng = _GDIPlus_ImageLoadFromFile($file_in)
    $aDim = _GDIPlus_ImageGetDimension($hPng)

    $tData = _GDIPlus_BitmapLockBits($hPng, 0, 0, $aDim[0], $aDim[1], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
    $pBits = DllStructGetData($tData, 'Scan0')
    If Not $pBits Then Return 0

    $a_hBitmap[0] = _WinAPI_CreateDIB($aDim[0],$aDim[1])
    If Not @error Then
        _WinAPI_SetBitmapBits($a_hBitmap[0], $aDim[0] * $aDim[1] * 4, $pBits)
    EndIf
    _GDIPlus_BitmapUnlockBits($a_hBitmap, $tData)
    _GDIPlus_ImageDispose($hPng)

    $a_hBitmap[1] = _WinAPI_CreateANDBitmap($a_hBitmap[0])

    $hIcon = _WinAPI_CreateIconIndirect($a_hBitmap[0], $a_hBitmap[1])
    If $hIcon Then
        _WinAPI_SaveHICONToFile($file_out, $hIcon)
        _WinAPI_DestroyIcon($hIcon)
    EndIf
EndFunc

I don't know who the original author for this code is.

I Think it was UEZ but I'am not sure of it.

Edited by nend
  • Moderators
Posted

romulocarlos,

This thread might prove a useful read. Note: you will need to change $ghGDIPDll to $__g_hGDIPDll in the _GDIPlus_BitmapCreateHICONFromBitmap function.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted (edited)

Here an example how to create a small animation in the tray. You can modify it accordingly to display text instead.

 

@nend: the code doesn't look like my coding style. ;)

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Posted (edited)
3 hours ago, nend said:

You can use GDI+ for it.

Make the text in GDI+ and make this script work for you.

This code makes a icon of it, and that is what you can show in the systray.

It's a function I use in code of my own, you need to adjust it to make it work for your project, this is a good start.

Func _CreateIconFile($file_in, $file_out)
    Local $a_hBitmap[2], $hIcon, $hPng, $sPath, $tData, $pBits, $g_hDll, $aDim

    $hPng = _GDIPlus_ImageLoadFromFile($file_in)
    $aDim = _GDIPlus_ImageGetDimension($hPng)

    $tData = _GDIPlus_BitmapLockBits($hPng, 0, 0, $aDim[0], $aDim[1], $GDIP_ILMREAD, $GDIP_PXF32ARGB)
    $pBits = DllStructGetData($tData, 'Scan0')
    If Not $pBits Then Return 0

    $a_hBitmap[0] = _WinAPI_CreateDIB($aDim[0],$aDim[1])
    If Not @error Then
        _WinAPI_SetBitmapBits($a_hBitmap[0], $aDim[0] * $aDim[1] * 4, $pBits)
    EndIf
    _GDIPlus_BitmapUnlockBits($a_hBitmap, $tData)
    _GDIPlus_ImageDispose($hPng)

    $a_hBitmap[1] = _WinAPI_CreateANDBitmap($a_hBitmap[0])

    $hIcon = _WinAPI_CreateIconIndirect($a_hBitmap[0], $a_hBitmap[1])
    If $hIcon Then
        _WinAPI_SaveHICONToFile($file_out, $hIcon)
        _WinAPI_DestroyIcon($hIcon)
    EndIf
EndFunc

I don't know who the original author for this code is.

I Think it was UEZ but I'am not sure of it.

Looking more into your code, I can understand something, but not all.

As I understand $file_in must be an png image file. I suspect $file_out will be the resulting image (the text) to be shown in system tray. I don't understant the $g_hDll, because it appears once on code (isn't used). What is 'Scan0'?

I'm right? Can you explain in more details?

Thanks in advice!

EDIT: I found this , but don't know how to use with your function...

Edited by romulocarlos
More information

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...