高分求助:用API给我添加一个工具栏
我想用纯API添加一个工具栏,搞很久没有搞出来,别人给我的函数,我不知道怎么用,郁闷啊。现在想大家求一个工程,发到我的邮箱吧:kevin820601@tom.com
一定要回复,email请注明你的ID,100分全给你,为减轻你的工作量,以下是我的部分代码,可以编译通过,只要一个工具栏,其他的不要,以免我糊涂,谢谢,
#include <windows.h>
LRESULT CALLBACK WndProc
( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
wc.hCursor=::LoadCursor(NULL,IDC_ARROW);
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName= "Draw ";
wc.lpszMenuName=NULL;
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wc.style=CS_HREDRAW | CS_VREDRAW;
if(!RegisterClass(&wc))
{
::MessageBox(NULL, "窗口注册失败 ", "提示 ",MB_OK);
}
HWND hwnd=::CreateWindow( "Draw ", "画图板 ",WS_OVERLAPPEDWINDOW ,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
::ShowWindow(hwnd,nCmdShow);
::UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam;
}
LRESULT CALLBACK WndProc
( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
HDC hdc;
HWND hToolBar;
PAINTSTRUCT ps;
switch(uMsg)
{
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
::EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}
[解决办法]
用Windows API 创建最完美的工具栏
www.bbsftp.com/myweb/ArticleShow.asp?ArtID=389&ArtClassID=5
[解决办法]
或者google/baidu该主题 ~~
[解决办法]
mark
[解决办法]
TBBUTTON ptoolbar[30]={ {STD_FILENEW,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_FILEOPEN,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_FILESAVE,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_CUT,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_COPY,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_PASTE,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_REDOW,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_UNDO,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_FIND,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_REPLACE,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_PRINT,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_PRINTPRE,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_PROPERTIES,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_HELP,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{STD_DELETE,IDM_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON, 0, 0},
{0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0}
};
int iToolNum=16;
hToolsWindow=CreateToolbarEx(hWnd,
WS_CHILD|WS_VISIBLE|TBSTYLE_WRAPABLE|TBSTYLE_TOOLTIPS|TBSTYLE_FLAT|CCS_ADJUSTABLE,
IDR_TOOLBAR1,
100,
HINST_COMMCTRL,
IDB_STD_SMALL_COLOR,
ptoolbar,
iToolNum,
0,0,0,0,
sizeof(TBBUTTON));
RECT Rect;
GetWindowRect(hToolsWindow,&Rect);
[解决办法]
wqvbka123(奶瓶 她家起火了) 的不行么?
[解决办法]
现在WinMain的CreateWindow前调用InitCommonControls函数.
然后在窗口的Create事件中调用CreateToolbarEx函数创建Toolbar
具体创建Toolbar的方法可以看MSDN的[用户界面设计与开发]-[Windows Controls]中的内容