в качестве главного окна программы использую диалог. в ресурсах задаю для диалога контрол тулбар, но почему то тулбар не отображается. помогите пожалуйста, бьюсь с этой проблемой уже долго. dialog.cpp:| Код | #include <windows.h> #include <dialog.h> #include <commctrl.h> // переменные HINSTANCE h; // хендл приложения HWND hw; // хендл окна int nresult; // код окончания программы INITCOMMONCONTROLSEX cc;
TBBUTTON tbb[3]; TBADDBITMAP tbab;
int __stdcall DlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp) { switch(msg) { case WM_CLOSE: // нажат крестик или alt+F4 SendMessage(hw,WM_COMMAND,IDM_EXIT,0); return 1; case WM_COMMAND: // сообщения от меню и тулбара switch(LOWORD(wp)) { case IDM_EXIT: // выход EndDialog(hw,nresult); return 1; } case WM_SIZE: // изменение размера окна SendMessage(GetDlgItem(hw,IDC_STATUS),WM_SIZE,0,0); return 1; case WM_INITDIALOG: // создание диалога tbab.hInst = HINST_COMMCTRL; tbab.nID = IDB_STD_SMALL_COLOR; SendMessage(GetDlgItem(hw,IDC_TOOLBAR), TB_ADDBITMAP, 0, (LPARAM)&tbab); ZeroMemory(tbb, sizeof(tbb)); tbb[0].iBitmap = STD_FILENEW; tbb[0].fsState = TBSTATE_ENABLED; tbb[0].fsStyle = TBSTYLE_BUTTON; tbb[0].idCommand = IDM_FILE_NEW; tbb[1].iBitmap = STD_FILEOPEN; tbb[1].fsState = TBSTATE_ENABLED; tbb[1].fsStyle = TBSTYLE_BUTTON; tbb[1].idCommand = IDM_FILE_OPEN; tbb[2].iBitmap = STD_FILESAVE; tbb[2].fsState = TBSTATE_ENABLED; tbb[2].fsStyle = TBSTYLE_BUTTON; tbb[2].idCommand = IDM_FILE_SAVEAS; SendMessage(GetDlgItem(hw,IDC_TOOLBAR), TB_ADDBUTTONS, sizeof(tbb)/sizeof(TBBUTTON), (LPARAM)&tbb); return 1; } return 0; }
int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { h = GetModuleHandle(0); // индусам передаём привет /* инициализация контролов */ cc.dwSize = sizeof(INITCOMMONCONTROLSEX); cc.dwICC = ICC_BAR_CLASSES; InitCommonControlsEx(&cc); /* создание главного окна */ DialogBoxParam(h,"tmpl",hw,DlgProc,0); return nresult; } |
dialog.rc:| Код | #include <dialog.h>
tmpl DIALOG 50,50,100,100 STYLE WS_VISIBLE|WS_OVERLAPPEDWINDOW CAPTION "ImgView" { CONTROL "",IDC_TOOLBAR,TOOLBARCLASSNAME,WS_CHILD|WS_TABSTOP|CCS_ADJUSTABLE|CCS_NODIVIDER|CCS_NOPARENTALIGN,0,0,100,0 CONTROL "",IDC_STATUS,"msctls_statusbar32",0,0,0,0,0 } |
dialog.h:| Код | #define IDM_EXIT 0 #define IDC_STATUS 1 #define IDC_TOOLBAR 2 #define IDM_FILE_NEW 3 #define IDM_FILE_OPEN 4 #define IDM_FILE_SAVEAS 5 |
|