麻烦高手帮我看一下这个程序,谢谢了!!

我现在正在学习windows程序,现在学到了如何在窗口程序中插入菜单,但是我按照书上的代码打进去,编译没有错,也可以运行,但是在窗口上却看不到我定义的菜单,就是菜单不可见,这是为什么?我定义菜单时的设置如截图,不知道是不是这里的设置有误?
我的源代码:
#include <windows.h>
#include "resource.h"

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

TCHAR szAppName[] = TEXT ("MenuDemo") ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = szAppName ;
wndclass.lpszClassName = szAppName ;

if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

hwnd = CreateWindow (szAppName, TEXT ("Menu Demonstration"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HMENU hMenu ;

switch (message)
{
case WM_COMMAND:
hMenu = GetMenu (hwnd) ;

switch (LOWORD (wParam))
{
case IDM_APP_ABOUT:
MessageBox (hwnd, TEXT ("Menu Demonstration Program"),
szAppName, MB_ICONINFORMATION | MB_OK) ;
return 0 ;
}
break ;

case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
我插入资源脚本产生的resource.h头文件如下:
#define IDR_MENU1 101
#define IDM_APP_ABOUT 40001
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40002
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
麻烦大家帮我看一下

这个需要到主对话框里添加的。点击属性--下面有一个菜单选项的。选择你设置的菜单名ID就是了,其实在vc中没有必要自己写这么多代码。可以在工程中点击插入菜单就是了。追问

谢谢啊,但是我还是不知道这里的主对话框指的是什么?麻烦您具体说一下怎么设置!!谢谢!!

追答

看图

追问

还得再麻烦您一下,我用的是visual c++6.0,我的属性菜单打开是这样的(如图),我是这样打开的view(视图)--->properties(属性),这样不能设置啊??

追答

....我也是VC6++,你的问题我也不是很清楚,我直接新建的就是一个hello word工程,里面可以直接添加菜单,

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-15
住对话框-属性=ID追问

谢谢啊,但是我还是不知道这里的主对话框指的是什么?麻烦您具体说一下怎么设置!!谢谢!!

哪个大神帮我看一下这个程序的错误在哪,只能实现部分数
count++;} 这里是错的,没有说过第n个输入的数必须大于等于n。你这样写就会错过一部分数字了。然后推荐使用ArrayList<Integer>来保存数字集合,自带contains方法可以很方便的判断数字是否在集合中已经存在,比手动循环查找简洁多了。

求高手帮我看看这个程序,要怎么输入文件数据,为什么老显示打开的文件为...
signal cnt6:std_logic_vector(5 downto 0); -- 定义一个信号作为六位计数器 begin p1:process(clk,rst,res,cnt6) -- 发光管流动显示方式 begin if rst='0' then bt<="00000000"; -- 复位清零 elsif clk'event and clk='1' then -- 按下rst启动 if res<='0' then case cnt6 is -- 自...

C语言开关灯问题,麻烦大神们帮我看看这个程序哪里错了啊,结果不对...
1、int a[6000]={1};这句。你这只是将a[0]赋值1,其他都是0,数组默认以0填充,应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又关了。逻辑...

请高手帮我看一下我的matlab程序错在哪里了? max(min{f1,f2,f3,f4,f...
帮你改写了一下非线性约束条件:function [C,ceq] = ghun(x)C = []; ceq = zeros(14,1);for i=1:7 ceq(2*i-1) = sum(x(1:7).^(i+1)) - sum((1:7).^(i+1)); ceq(2*i) = sum(x(8:14).^(i+1)) - sum((1:7).^(i+1));end 求解得到的结果是:...

高手帮我看下这个汇编程序,有些段落不懂
1、EQU是符号定义伪指令,相当于常量定义,类似于C中的#defin;BIT是位变量定义伪指令。你应该找本51单片机的书看看;2、程序“当然”能直接控制i\/o口!3、你给出的程序中再也没有用到CH变量,所以无法回答。

关于8流水灯灯程序!!!急急急。。高手帮我看看这个程序错哪了
而无论如何都不会执行右边的程序。。为什么呢?我定义res<=0,,才循环。可是res<=1时。。它还是一样。就是说res完全没用。无法控制。导致以下的程序不执行。。高手能明白我说什么吗?帮帮我。。。谢谢。。马上要交了。只有一次机会了。 ...高手帮修改下3楼的那个程序。。。那个只会自循环。按其他键一点用都...

...程序,不知道什么地方错了,请高手们帮我看看,谢谢!
1.首先,我们得知道日历的一些变化:“西方历法的第一次改革是罗马朱利乌斯·凯撒大帝引进的。他采用的四年一闰的闰年方式。由于一个太阳年不刚好是365.25天,而是 365.242199…天。到16世纪,每年11分14秒的误差已经累积成10天,也就是历法上多了10天。于是教皇格利戈里八世进行了一次校正。他在...

单片机高手,帮我看看这个反转发循环扫描矩阵键盘程序,帮我详细的解释哈...
if(cord_h!=0x0f) \/\/先检测有无按键按下,如果cord_h=0x0f说明无键按下 { delay(100); \/\/去抖 if(cord_h!=0x0f)\/\/确实有键按下 { cord_h=P3&0x0f; \/\/开始P3=0x0f,S10按下后P3.1=0,所以P3=0x0d,列线值cord_h=P3&0x0f即cord_h=0x0d;P3=cord_h|0xf0; ...

高手们帮我看看c语言程序,请给每行代码和功能注释
我的 高手们帮我看看c语言程序,请给每行代码和功能注释 1.紧急处理程序EmergeControl(){if(swatch—file—len!=now—file—len)hacked—len=1;if((filetime.fi—year!=now—filetime.ft—year)II(filetime.ft—month!=nOW—file—time... 1.紧急处理程序EmergeControl(){if(swatch—file—len!=now—fil...

请高手帮我看看下面的程序那里出错了!这是个俄罗斯方块的源码,运行平 ...
unsigned int lasttime; \/*这个属于内部使用变量*\/} Timer;\/**现在进入了编程的初质阶段*在开始处我会写出所有的函数原形,以及它们的作用main函数在程序的最后,你可以在这里看到整个游戏的组织架构很好,它只有几十行,并且非常容易理解,当然,还是先看一下函数原形及解释*\/\/*由于受帖子内容限制,接下来的程序代码请...

相似回答