(Gast)
n/a Beiträge
|
Re: MF_SEPARATOR welcher string wert in Delphi
15. Jan 2009, 11:12

Zitat von fkerber:
Hi!
Wenn ich dich richtig verstehe, wäre die Antwort "auch ein -"
Allerdings befürchte ich, dass du dann nicht fragen würdest...
Vllt. stehe ich auch nur auf dem Schlauch, aber vllt. kannst du auch dein Problem noch etwas näher beschreiben.
Also wenn es darum geht, im Menü so einen Trennstrich einzufügen müsste - das richtige sein...
Ciao, Frederic
Wenn ich bei 102: = Seperator als result '-' übergebe wird nur '-' einmalig gezeichnet.
Nicht wie vom Menu(System) erwartet das zeichen über die gesamte breite des Menu.
Delphi-Quellcode:
WM_NCRBUTTONDOWN:
begin
hPopupMenu := CreatePopupMenu; // Bitmap Popupmenu
hSubSkinMenu := CreatePopupMenu; // Bitmap SkinSubmenu
if hPopupMenu <> 0 then
begin
AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_ABOUT, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_POPUP, hSubSkinMenu, 'Skins');
MnuSkins := nil;
Files := nil;
FindAllFiles(ExtractFilePath(ParamStr(0)) + 'Skins', '.ske', True);
SetLength(MnuSkins, length(Files));
for IntI := 0 to length(Files) - 1 do
AppendMenu(hSubSkinMenu, MF_OWNERDRAW, IDM_SKINS + IntI, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_AddFile, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_AddFolder, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_Close, '');
GetCursorPos(p);
MenuWahl := TrackPopupMenuEx(hPopupMenu, TPM_RETURNCMD, p.X, p.Y, WinHandle, nil);
DestroyMenu(hPopupMenu);
if MenuWahl then
SendMessage(WinHandle, WM_COMMAND, Makelong(Word(MenuWahl), 0), 0);
end;
end;
Delphi-Quellcode:
function GetMenuTxt(ItemId: Integer; var Img: Cardinal): string;
var
sItem: string;
sSkinItem: TSplitStrArray;
Item: Integer;
begin
with SkinEngine do
begin
case ItemId of
102:
Result := '-';
Sieht in Delphi aus .. siehe Pic
|