设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 557|回复: 5
打印 上一主题 下一主题

这个程序好郁闷啊

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 23:53:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我今天上网看到这了个程序 怎么看也看不懂 好像和老谭书上写的都不一样 这是C++吗?
如果是老谈的书到底教的是什么啊 怎么这个都看不懂啊
#include <windows.h>
#include <windowsx.h>
#include "main.h"
#include "dialogs.h"
#include "resource.h"
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
//END MESSAGE CRACK
}
return FALSE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnInitDialog
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
// Set app icons
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);

//
// Add initializing code here
//

return TRUE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnCommand
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_OK:
MessageBox(hwnd,"You click OK!","DlgApp",MB_OK);
EndDialog(hwnd, id);
break;
case IDC_CANCEL:
MessageBox(hwnd,"You click Cancel!","DlgApp",MB_OK);
EndDialog(hwnd, id);
break;
default:break;
}
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnClose
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
2#
发表于 2009-11-3 23:53:55 | 只看该作者
没人知道吗 不会吧 还是这个问题太BT了啊
我真的不懂啊 为什么 为什么
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 23:53:56 | 只看该作者
是的,不过用标准窗口罢了
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 23:53:57 | 只看该作者
建议看一下windows图形编程里面有几个这样的例程
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 23:53:59 | 只看该作者
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
//END MESSAGE CRACK
}

按格式 不是应该是
switch(?)
{ case ? : ???
case ? : ???
.
.
.
}
而它怎么连case都没有了啊
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 23:54:01 | 只看该作者
MFC编程中如果碰到大写的定义一般都是宏定义,可以直接查询MFC的头文件,你所举的switch中其实是有case的:
#define HANDLE_MSG(hwnd, message, fn) \
case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn))
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 19:30 , Processed in 0.173353 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表