新微赢技术网

标题: 这个程序好郁闷啊 [打印本页]

作者: ヤforget♀戀    时间: 2009-11-3 23:53
标题: 这个程序好郁闷啊
我今天上网看到这了个程序 怎么看也看不懂 好像和老谭书上写的都不一样 这是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);
}
作者: 天地之一    时间: 2009-11-3 23:53
没人知道吗 不会吧 还是这个问题太BT了啊
我真的不懂啊 为什么 为什么
作者: 专属天使    时间: 2009-11-3 23:53
是的,不过用标准窗口罢了
作者: 熾天使rose    时间: 2009-11-3 23:53
建议看一下windows图形编程里面有几个这样的例程
作者: ︶ㄣ风飄零ヤ    时间: 2009-11-3 23:53
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都没有了啊
作者: 飞.逝﹏..    时间: 2009-11-3 23:54
MFC编程中如果碰到大写的定义一般都是宏定义,可以直接查询MFC的头文件,你所举的switch中其实是有case的:
#define HANDLE_MSG(hwnd, message, fn) \
case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn))




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2