Dialogbox ohne Hauptfenster ?



  • Doch tut es.



  • LOL, @pixartist, Du darfst Dir ruhig helfen lassen^^.
    PS: Vergiss nicht, das Icon wieder zu löschen; DestroyIcon.



  • http://www.pixartist.de/pchat.jpg
    nein tut es nicht

    BOOL CALLBACK DlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
    	{
    		case WM_INITDIALOG: 
    		//[...]
                SendMessage(hDlg,WM_SETICON,ICON_SMALL,(LPARAM)IDI_ICON1);
    		SendMessage(hDlg,WM_SETICON,ICON_BIG,(LPARAM)IDI_ICON1);
                //[...]
           }
    }
    


  • Welchen Wert hat "IDI_ICON1" ? Gibt es noch weitere Icons ?



  • das ist ne resource..und nein es gibt keine anderen icons
    definiert in der resource.h

    #define IDI_ICON1                       110
    

    ich weis aber nicht, wofür das wichtig sein sollte, da das icon offensichtlich funktioniert (.exe icon, startleisten icon)
    nur wird halt das icon in der dialogbox nicht verändert 😡



  • Und wo Hast du das icon Geladen



  • Warum ladest du das icon net so wie ichs dir gezeigt hab und warum machst du den selben aufruf zweimal

    BOOL CALLBACK DlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
    	{
    		case WM_INITDIALOG: 
    		//[...]
                SendMessage(hDlg,WM_SETICON,ICON_SMALL,(LPARAM)IDI_ICON1);
    		SendMessage(hDlg,WM_SETICON,ICON_BIG,(LPARAM)IDI_ICON1);
                //[...]
           }
    }
    

    Das gehört sich numal so

    [code]
    hIcon = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_MAIN_ICON),IMAGE_ICON, 16, 16, LR_SHARED);
      // ICON setzen
      SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM) hIcon);
    [/code]
    

    😃 @Codefinder sorry habs vergessen

    case WM_DESTROY: // Fenster Zerstoeren
    DestroyIcon(hIcon);
    PostQuitMessage(0);
    break;
    


  • Ascharan schrieb:

    Warum ladest du das icon net so wie ichs dir gezeigt hab und warum machst du den selben aufruf zweimal

    BOOL CALLBACK DlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
    	{
    		case WM_INITDIALOG: 
    		//[...]
                SendMessage(hDlg,WM_SETICON,ICON_SMALL,(LPARAM)IDI_ICON1);
    		SendMessage(hDlg,WM_SETICON,ICON_BIG,(LPARAM)IDI_ICON1);
                //[...]
           }
    }
    

    Das gehört sich numal so

    [code]
    hIcon = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_MAIN_ICON),IMAGE_ICON, 16, 16, LR_SHARED);
      // ICON setzen
      SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM) hIcon);
    [/code]
    

    😃 @Codefinder sorry habs vergessen

    case WM_DESTROY: // Fenster Zerstoeren
    DestroyIcon(hIcon);
    PostQuitMessage(0);
    break;
    

    das ist nicht der gleiche aufruf 2 mal...einmal icon_big, einmal icon_small.
    Des weiteren, dein code macht keinen unterschied zu meinem, ausser dass du loadimage benutzt...warum kompliziert, wenns auch einfach geht?



  • möcht mal wissen was du für probleme hast Das erste icon was du einbindest wird in die exe gesetzt wenn ich mich da net vertue du kannst meine grössen Angaben weglassen trotzdessen must du eben erst mal das icon mit MAKEINTRESOURCE(IDI_ICON) erstmal aus deiner resource Laden um es verwenden zu können wenn du das in Pur WinApi machst bsp. wenn du das fenster komplett Zeichnest brauchst du auch erst MAKEINTRESOURCE(IDI_ICON) um ein eigenes icon zu laden

    bei mir siehts so aus Hier

    übrigens ich lade mein icon mit LoadImage weil man es mir so gezeigt hat

    hIcon = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_MAIN_ICON),IMAGE_ICON, 16, 16, LR_SHARED);
    

    damit lade ich das icon 16 x 16 px für die obere linke ecke

    😃



  • oO aber warum gehts denn mit loadimage und nicht so 😞



  • Würd mal behaupten das du nur die ID von deinem Icon Lädst und mit LoadImage Den Interpreter sagst das du ein ICON aus einer Resource laden willst bsp. ein icon aus einem verzeichnis, und MAKEINTRESOURCE aus der programm eigenen resource oder so. 😃



  • pixartist schrieb:

    das ist ne resource..und nein es gibt keine anderen icons
    definiert in der resource.h

    #define IDI_ICON1                       110
    

    ich weis aber nicht, wofür das wichtig sein sollte, da das icon offensichtlich funktioniert (.exe icon, startleisten icon)
    nur wird halt das icon in der dialogbox nicht verändert 😡

    Das es ne Resource ist, war klar. Es wird immer das Icon angezeigt, was die kleinste ID hat, deswegen hab ich gefragt. Du könntest testweise auchmal für IDI_ICON1 den Wert 101 bzw. 100 setzen (das sind eigentlich die Werte die von der IDE vorgegeben werden). Wobei ich eher nicht glaube, dass es was ändern würde; aber n Versuch isses Wert. (Vergiss nicht das gesamte Projekt zu bereinigen, also alle BuildFiles zu löschen).


Anmelden zum Antworten