vc6.0中一个空工程添加菜单资源
// testagain.cpp : Defines the entry point for the application.
//
#include
#include"resource.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
// 填充窗口类
static TCHAR szAppName[] =TEXT("Hello");
HWND hwnd;
MSG msg;
WNDCLASS wc;
wc.cbClsExtra= 0;
wc.cbWndExtra= 0;
wc.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor= LoadCursor(NULL,IDC_ARROW);
wc.hIcon= LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance =hInstance;
wc.lpfnWndProc =WndProc;
wc.lpszClassName =szAppName;
wc.lpszMenuName= "Hello"; // 这里我添加了菜单名
wc.style =CS_HREDRAW|CS_VREDRAW;
// 判断注册窗口类成功与否
if(!::RegisterClass(&wc))
{
MessageBox(NULL,TEXT("this program needs windows NT!"),szAppName,MB_ICONERROR);
return 0;
}
// 创建窗口
hwnd=::CreateWindow(szAppName,
TEXT("欢迎!"),
WS_OVERLAPPEDWINDOW,
700,//CW_USEDEFAULT,
180,//CW_USEDEFAULT,
500,//CW_USEDEFAULT,
500,//CW_USEDEFAULT,
NULL,
NULL, // 想知道这里应该怎么来确定菜单句柄应该怎么写
hInstance,
NULL
);
// 显示并更新窗口
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
// 消息循环
int bset;
while((bset=GetMessage(&msg,hwnd,0,0))!=0)
{
if(bset==-1)
{
MessageBox(NULL,TEXT("exit error!"),szAppName,MB_OK);
break;
}
else
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
return msg.wParam;
}
// 窗口过程处理函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rt;
int wmparam;
switch(message)
{
case WM_COMMAND:
wmparam=LOWORD(wParam);
switch(wmparam)
{
case IDM_EXIT:
DestroyWindow(hwnd);
return 0;
case IDM_DISP:
MessageBox(hwnd,"这是一个测试!","Dialog",MB_OK);
return 0;
}
case WM_PAINT:
hdc =BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rt);
DrawText(hdc,TEXT("欢迎来到VC!"),-1,&rt, DT_SINGLELINE | DT_CENTER | DT_VCENTER); // TextOut(hdc,10,10,"Good!",sizeof("Good!"));//different with textout
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
我在该工程下添加了菜单资源并添加进工程了但是编译连接时不显示菜单 猜想是创建窗口是那还有个参数没改
但是我有点不会还请指教
------解决方案--------------------
这种问题,找本书或网上代码搜搜看看
------解决方案--------------------
/* 变量声明处 */
HMENU main_menu = NULL;
......
/* 加载菜单 */
main_menu = LoadMenu(hInstance, TEXT("Hello"));
/* 如果的你的菜单是用ID形式而不是字符串形式 ,请这样写*/
main_menu = LoadMenu(hInstance, MAKEINTRESOURCE(菜单ID));
...............
hwnd =::CreateWindow(szAppName,
TEXT("欢迎!"),
WS_OVERLAPPEDWINDOW,
700,//CW_USEDEFAULT,
180,//CW_USEDEFAULT,
500,//CW_USEDEFAULT,
500,//CW_USEDEFAULT,
NULL,
main_menu, /* 菜单句柄 */
hInstance,
NULL
);