2009-12-24 8 views
0

리소스 편집기에 컨트롤이 추가 된 대화 상자가 있습니다. 그러나 WM_INITGDIALOG 메시지에서 즉시 도구 모음을 만들려고하지만 도구 모음이 표시되지 않습니다. 보이는 것을 만들 수있는 다른 것이 있습니까 (나는 그렇게 생각하지 않지만 ...). 이것이 불가능할 경우 리소스 편집기에서 툴바를 추가하는 방법.도구 모음 추가 Win32 API가있는 대화 상자

는 당신은 내가 당신은 함수의 끝에서

SendMessage(hwndSysButtonTB, TB_AUTOSIZE, 0, 0); 
ShowWindow(hwndSysButtonTB , SW_SHOW); 

전화를해야

CreateButtons(HWND hwnd) 
{ 
    HIMAGELIST m_hTBImageList; 
    HIMAGELIST m_hTBHottrack; 



    HWND hwndSysButtonTB = CreateWindowEx(0, 
     TOOLBARCLASSNAME, 
     _T(""), 
     WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS | CCS_NORESIZE | CCS_NOPARENTALIGN, 
     toolbarRect.left, toolbarRect.top, toolbarRect.right-toolbarRect.left, toolbarRect.bottom-toolbarRect.top, 
     hwnd, 
     (HMENU)IDR_TOOLBAR, 
     (HINSTANCE)hAppInstance, 
     NULL); 

    m_hTBImageList = ImageList_LoadImage((HINSTANCE)hAppInstance, 
     MAKEINTRESOURCE(IDB_BITMAP_ICONS), toolbarButtonSize.cx, 1, 
     0, IMAGE_BITMAP, LR_CREATEDIBSECTION|LR_SHARED); 
    m_hTBHottrack = ImageList_LoadImage((HINSTANCE)hAppInstance, 
     MAKEINTRESOURCE(IDB_MOUSEOVER), toolbarButtonSize.cx, 1, 
     0, IMAGE_BITMAP, LR_CREATEDIBSECTION|LR_SHARED); 

    SendMessage(hwndSysButtonTB, (UINT) TB_SETIMAGELIST, 0, (LPARAM)m_hTBImageList); 
    SendMessage(hwndSysButtonTB, (UINT) TB_SETHOTIMAGELIST, 0, (LPARAM)m_hTBHottrack); 
    SendMessage(hwndSysButtonTB, (UINT) TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); 

    // win2k: set color of hot tracking frame 
    COLORSCHEME scheme; 
    scheme.dwSize = sizeof(scheme); 
    scheme.clrBtnHighlight = RGB(175,175,175); 
    scheme.clrBtnShadow = RGB(175,175,175); 
    SendMessage(hwndSysButtonTB, (UINT) TB_SETCOLORSCHEME, 0, (LPARAM)&scheme); 

    TBBUTTON ButtonEnd =   {0,ID_BUTTON_END,TBSTATE_ENABLED,TBSTYLE_BUTTON}; 
    TBBUTTON ButtonRefresh =  {1,ID_BUTTON_REFRESH,TBSTATE_ENABLED,TBSTYLE_BUTTON}; 
    TBBUTTON ButtonOptions =  {2,ID_BUTTON_PROPERTIES,TBSTATE_ENABLED,TBSTYLE_BUTTON}; 



    SendMessage(hwndSysButtonTB, (UINT) TB_ADDBUTTONS, 1, (LPARAM)&ButtonEnd); 
    SendMessage(hwndSysButtonTB, (UINT) TB_ADDBUTTONS, 1, (LPARAM)&ButtonRefresh); 
    SendMessage(hwndSysButtonTB, (UINT) TB_ADDBUTTONS, 1, (LPARAM)&ButtonOptions); 

} 

답변

0

VS 2008 년 사용 추측.

그리고 저는 TBBUTTON 배열을 3 개의 별도 변수 대신 사용해야한다고 생각합니다. 그런 다음 한 번에 모두 추가 할 수 있습니다.

SendMessage(hwndSysButtonTB, (UINT) TB_ADDBUTTONS, 3, (LPARAM)&ButtonArray); 
+0

감사합니다. – whoi