ShIvADeSt
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Я хочу использовать в программе нестандартный диалог. Как я понимаю, для рисования используется редактор ресурсов (кстати, каким лучше всего воспользоваться?), но вот что делать дальше? Как вызвать этот диалог, и как организовать взаимодействие с ним? (т.е. передачу данных в диалог, обработку в диалоге и передачу данных в основную прогу) | Примерно так (естессно что константы и функции свои) Я диалоги создавал Restorator 2007 hMain:=DialogBox(hInstance, PChar(MAINBOX), 0, @DlgFunc); - вызов диалога MAINBOX из ресурса function DlgFunc(hWnd: hwnd; Msg: dword; wParam: WPARAM; lParam: LPARAM): Longbool; STDCALL; - основная функция для обработки сообщений диалога А далее ловишь оконные сообщения и обрабатываешь их, например Код: case Msg of WM_INITDIALOG: WM_HOTKEY: case HIWORD(lParam) of VK_F10: FillEdit; end; WM_LBUTTONDOWN: begin Cur:=MakePoints(lParam); if PtInRect(CapRect,Cur) then SendMessage(hWnd,WM_SYSCOMMAND,$F012, 0); end; WM_CLOSE: begin UnregisterHotKey(hWnd,0); Shell_NotifyIcon(NIM_DELETE, @IconData); EndDialog(hWndAbout,0); EndDialog(hWnd, 0); end; WM_DRAWITEM: OnDrawItem(PDRAWITEMSTRUCT(lParam)); WM_COMMAND: case LOWORD(wParam) of SC_CLOSE:SendMessage(hWnd,WM_CLOSE,0,0); SC_MINIMIZE:ShowWindow(hWnd,SW_HIDE); SC_RESTORE: begin ShowWindow(hWnd,SW_SHOW); SetForeGroundWindow(hWnd); end; |
---------- И создал Бог женщину... Существо получилось злобное, но забавное... |
|