identifier bei buttons? o.0



  • moinsen allerseits,

    ich kann mit folgendem code in der msgloop bei start des programms (WM_CREATE) einen button erstellen:

    HWND hButton;
                hButton=CreateWindow(
                    "BUTTON","Drück mich!",
                    WS_CHILD | WS_VISIBLE,
                    20,20,100,25,
                    hwnd,NULL,NULL,NULL
                );
    

    In der win32api.hlp steht das der neunte parameter hMenu bei "childwindows" den identifier angibt mit denen man dann die ereignisse -glaube bei WM_COMMAND in der der msgloop- (zb BN_CLICK) abfangen kann...

    nun habe ich keine ahnung was ich da machen soll 😮, weil ich nich weiß welcher typ das sein soll 😕



  • Du kannst da einfach eine ID (Zahl) angeben, die du nach HMENU castest - damit es übersichtlich bleibt, macht man normalerweise ein #define für diese IDs - denn sonst wirst du bei vielen Zahlen bald nicht mehr wissen, welche von welchem Button ist.
    Bei BN_CLICKED findest du dann diese Zahl in LOWORD(wParam) wieder...



  • danke 🙂

    so klappst

    case WM_CREATE: {
                HWND hButton;
                hButton=CreateWindow(
                    "BUTTON","Drück mich!",
                    WS_CHILD|WS_VISIBLE,
                    20,20,100,25,
                    hwnd,(HMENU)1,NULL,NULL
                );
                break;
            }
            case WM_COMMAND:
                switch(LOWORD(wParam)) {
                    case 1: exit(0);
                }
                break;
    

    aber wo finde ich das BN_CLICKED? wird das dann iwie mit dem lParam übergeben?



  • http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/buttons/buttonreference/buttonmessages/bn_clicked.asp

    The low-order word contains the button's control identifier. The high-order word specifies the notification message.


Anmelden zum Antworten