диалоговое окно не появляется, точнее вызов WndProc, почему-то не происходит. Подскажите, что не так. Вот код: Код (Text): .386 .model flat, stdcall option casemap :none ; case sensitive ; ###################################################################### ### include \masm32\include\kernel32.inc include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\shell32.inc include \masm32\include\comdlg32.inc include \masm32\include\comctl32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\shell32.lib includelib \masm32\lib\comdlg32.lib includelib \masm32\lib\comctl32.lib ; ###################################################################### ### .const IDDLG egu 1 IDBUT1 equ 102 IDBUT2 equ 103 IDEDIT equ 1045 IDTEXT equ 105 .data? hInstance dd ? hBut1 dd ? hBut2 dd ? hEdit dd ? hText dd ? hWinMain dd ? .data szMenu db "#1",0 szAbout db "About",0 .code ; ---------------------------------------------------------------------- ----- start: jmp @prg WndProc PROC uses esi edi hWin: DWORD, uMsg: DWORD, wParam: DWORD, lParam: DWORD LOCAL pt: POINT invoke MessageBox,0,offset szMenu,offset szAbout,0 .IF uMsg == WM_INITDIALOG mov edi, hWin mov hWinMain, edi invoke LoadIcon, hInstance, offset szMenu invoke SendMessage, edi, WM_SETICON, 1, eax invoke GetDlgItem, edi, IDBUT1 mov hBut1, eax invoke GetDlgItem, edi, IDBUT1 mov hBut2, eax invoke GetDlgItem, edi, IDEDIT mov hEdit, eax invoke GetDlgItem, edi, IDTEXT mov hText, eax invoke MessageBox,0,offset szMenu,offset szAbout,0 .ELSEIF uMsg == WM_CLOSE @close_dlg: invoke EndDialog, hWinMain, 0 .ENDIF invoke MessageBox,0,offset szMenu,offset szAbout,0 xor eax, eax ret WndProc endp @prg: xor eax,eax invoke GetModuleHandle, NULL mov hInstance, eax invoke DialogBoxParam, eax, IDDLG, 0, offset WndProc, 0 invoke MessageBox,0,offset szMenu,offset szMenu,0 invoke ExitProcess, 0 end start
а сам диалог? случаем не надо вызывать InitCommonControls?(или что то похожее, точно не помню). и на GetLastError не мешало бы взглянуть.
MessageBox для отладки и был создан. Ощибку нашел, отладчик помог. Ошибка была в самом ресурсе окна. там стояло WS_CHILD. Вот кстати вся прога, с диалоговым окном вмете.
А вот в ресурсах это дело (IDDG) немного по-другому называется у тебя... Может из-за этого? MASM'а нет проверить негде
основная бага была в кривых ресурсах, такое ощущение что .rc набивали руками в этих строчках что-то не то EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_APPWINDOW STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CAPTION | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_SYSMENU в аттаче то что получилось 1745627809__window.rar