| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1125 人关注过本帖
标题:一段代码中,关于DialogBox的函数
只看楼主 加入收藏
shn521
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:52
注 册:2010-6-18
结帖率:73.33%
收藏
已结贴  问题点数:20 回复次数:2 
一段代码中,关于DialogBox的函数
#include <windows.h>
#include "resource.h"

//全局变量声明
//主对话框的窗口句柄
HWND g_hWnd = NULL;
//对话框改变之前的大小
SIZE g_siDlg = {0};

//函数声明
//对话框过程函数
INT_PTR CALLBACK
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
//对话框命令响应
void OnCommand(WPARAM wp, LPARAM lp);
//WM_SIZE消息响应
void OnSize(WPARAM wp, LPARAM lp);
//按照指定规则移动某个控件
void MoveCtrl(UINT nID, int x, int y, BOOL bLeft, BOOL bTop, BOOL bRight, BOOL bBottom);
//将屏幕坐标转换为窗体坐标
void ScreenToClientRect(LPRECT prc);

//应用程序的入口函数
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    //弹出一个模式对话框,并等待对话框结束
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL,DlgProc);
    return 0;
}
//对话框过程函数
INT_PTR CALLBACK
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_INITDIALOG:        //对话框初始化
        {
            //保存窗口原始尺寸
。。。。。。。

编译时出现的问题“ cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)”
第4个参数是要“IpDialogFunc:指向对话框过程的指针”
请教,这个怎么处理啊
      
搜索更多相关主题的帖子: DialogBox 函数 代码 
2010-08-12 10:33
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:20 
看看你的CALLBACK定义了没有,如果没有定义将
INT_PTR CALLBACK
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
改成
int __stdcall
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-12 11:35
shn521
Rank: 2
等 级:论坛游民
威 望:1
帖 子:56
专家分:52
注 册:2010-6-18
收藏
得分:0 
以下是引用东海一鱼在2010-8-12 11:35:37的发言:

看看你的CALLBACK定义了没有,如果没有定义将
INT_PTR CALLBACK
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
改成
int __stdcall
DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
CALLBACK定义的__stdcall
typedef long INT_PTR, *PINT_PTR;
修改为int __stdcall 就编译通过了
图片附件: 游客没有浏览图片的权限,请 登录注册
但拖动对话框会留下痕迹,看来书上的例子可能没设计好,等过段时间我试着把这里弄弄,感谢
2010-08-12 12:20
快速回复:一段代码中,关于DialogBox的函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017495 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved