WinAPI: Wie PopUp-Menütext fett darstellen?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

WinAPI: Wie PopUp-Menütext fett darstellen?

Beitrag von Regenduft »

Moooin,

Bin gerade am rätseln, wie sich mit WinAPI ein Popup-Menütext fett darstellen lässt.

Ich denke das müßte irgendwie mit ModifyMenu_() gehen und ich benötige irgendwie die #IDM_BOLD Konstante (Wert 52). Wie es aber funktioniert verstehe ich irgendwie überhaupt nicht. :freak:

Wäre schön, wenn mir da jemand weiterhelfen könnte!

(BTW: Sucht man mit Google nach "Wert IDM_BOLD", so findet man nur das PureBoard :allright: ... ich weiß, das ist ein komischer Suchausdruck, aber es hat funktioniert!)
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Fabian A.
Beiträge: 4
Registriert: 10.04.2009 11:23
Wohnort: Vorarlberg

Beitrag von Fabian A. »

Aus dem Code-Archiv:

Code: Alles auswählen

; English forum: http://www.purebasic.fr/english/viewtopic.php?p=70325#70325 
; Author: GreenGiant (updated for PB 4.00 by edel)
; Date:  26. September 2004 
; OS: Windows 
; Demo: No 

#MIIM_STATE=1 
#MFS_DEFAULT=4096 

OpenWindow(0,0,0,400,400,"test",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
CreatePopupMenu(0) 
MenuItem(0,"Normal1") 
MenuItem(1,"Normal2") 
MenuItem(2,"Bold") 
MenuItem(3,"Normal3") 

bold.MENUITEMINFO 
bold\cbSize=SizeOf(bold) 
bold\fMask=#MIIM_STATE 
bold\fState=#MFS_DEFAULT 
SetMenuItemInfo_(MenuID(0),2,#True,bold) ;2 specifies the item to be made bold 

Repeat 
  ev=WaitWindowEvent() 
  If ev=#WM_RBUTTONUP 
    DisplayPopupMenu(0,WindowID(0)) 
  EndIf 
Until ev=#PB_Event_CloseWindow 
Gruß Fabian
[/code]
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

hier noch ein weiterer Thread zum Thema (Suchfunktion :wink: )
Win11 x64 | PB 6.20
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Beitrag von Regenduft »

Bin wohl zu doof zum richtig suchen... :freak:

Danke Fabian A.! :allright:
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

ich wollt natürlich noch den Link mit geben:
http://www.purebasic.fr/german/viewtopi ... highlight=
(hab ich oben vergessen :freak: )
Win11 x64 | PB 6.20
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Beitrag von Regenduft »

Thx Andesdaf!

Eine kleine Sache ist mir noch aufgefallen:

beim obrigen Code wird die Menü-Item Addressierung über "ByPosition" gemacht ("Schachfeld-Methode").

Man kann den Code aber auch einfach abändern, damit es via "ByCommand" funktioniert und man die MenuItemID übergeben kann.
Einfach bei SetMenuItemInfo() das #True in #False ändern.

Code: Alles auswählen

SetMenuItemInfo_(MenuID(Munu), MenuItem, #True, @bold)  ; <- Original (ByPosition)

SetMenuItemInfo_(MenuID(Menu), MenuItem, #False, @bold) ; <- MenuItemID-Variante (ByPosition)
PS: Sorry für die laienhafte Ausdrucksweise
PPS: Ich frage mich warum ich den Link nicht fand! Kommen alle wichtigen Schlagworte drin vor...
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Regenduft hat geschrieben:PPS: Ich frage mich warum ich den Link nicht fand! Kommen alle wichtigen Schlagworte drin vor...
Tja, die Hilfe mag nicht jeden... :mrgreen:
Regenduft hat geschrieben:Man kann den Code aber auch einfach abändern, damit es via "ByCommand" funktioniert und man die MenuItemID übergeben kann.
Einfach bei SetMenuItemInfo() das #True in #False ändern.
ja, das kann man ändern. Gleich mal umwurschdeln...
Win11 x64 | PB 6.20
Antworten