Здравствуйте. А как отправить родителю WM_COMMAND? Код (Text): id dd WM_USER+1 ... mov ebx, BN_CLICKED shl ebx, 16 add ebx, [id] invoke GetParent, [hwnd] invoke SendMessage, eax, WM_COMMAND, ebx, [hwnd] я раззве ebx не правильно заполнил?
loword должен быть id контрола, а не WM_USER+1 (если они конечно не совпали случайно). Id задается при создании контрола. add ebx, [id] можно делать, если есть уверенность, что [id] содержит в старшем слове нули. Иначе получишь ошибочный WPARAM. Лучше вообще отказаться от WM_COMMAND и просто передавать WM_USER+XXXXXXX. Если у тебя возникла необходимость отправлять сообщение родителю - это повод переделать структуру программы. Что-то неоптимально у тебя организовано, иначе не пришлось бы прибегать к такому способу общения.
Кэк бы тэк случайно совпали, даже сам не пойму как... (программа сама себе WM_COMMAND отсылает) Ну как по другому?! Я пытаюсь (в целях саморазвития конечно) написать кнопку с нуля и запихнуть ее в длл естественно, но вот допустим вы нажали на нее и как мне сообщить родителю, что вы это сделали??? id dd WM_USER+1 - написал для наглядности, а так беру значение из CREATEPARAM
А простым mov ebx, [id] разве мы не заполняем LOWORD???? Вообще ни чего не пойму(( В фасме работает: Код (Text): invoke PostMessage, eax, WM_COMMAND, (0 shl 16) or 401h, 0 А как 401h на [id] поменять? зы... Ошибка заключалась в получении id всем спасибо, простити за лишние хлопоты...
Иногда надо отправить сообщение родителю - без этого не работало бы ни одно диалоговое окно или меню. Т.е. - один этот факт - не говорит о неправильности проектирования.