Chinaunix首页 | 论坛 | 博客
  • 博客访问: 694870
  • 博文数量: 85
  • 博客积分: 1797
  • 博客等级: 上尉
  • 技术积分: 1238
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 08:53
个人简介

职位:技术总监 1、精通c++(linux平台、vc++Mfc、qt)、java、php、unity3d,略懂python 2、用c++开发过嵌入式产品,用c++开发过大型银行运维产品 3、用java开发大型银行运维产品,学校教务系统 4、用php开发进销存系统(在销售中),用php开发淘宝小程序 5、用unity3d开发衣柜设计软件,在运营中

文章分类

全部博文(85)

分类: C/C++

2011-09-16 22:20:30

    在做gina的时候,遇到一个问题,因为要有对话框操作,在gina中的对话框是使用wlxDialogBoxParam创建出来的,在自己创建对话框的时候,无论怎样,弹出的对话框都不能始终在前面,原因如下,

    使用DialogBoxParam创建对话框,要有回调函数,这个函数其实是createWindow的简化版。创建出来的对话框是非模式的。在这个回调函数中再调用messagebox出来的对话框默认也是非模式的,这是继承关系吧。要想使用模式的,加MB_TASKMODAL类型,

    实验证明Afxmessagebox在什么地方调用,都是模式的,但这个函数没有设置标题的地方。

 

    下面是模拟测试代码:

 

  1. INT_PTR CALLBACK DialogProc(HWND _hwnd, UINT msg, WPARAM wp, LPARAM lp)
  2. {
  3.     switch (msg)
  4.     {
  5.     case WM_INITDIALOG:        //初始化对话框
  6.         {
  7.             //初始化对话框
  8.             break;

  9.         }
  10.     case WM_COMMAND:    //命令
  11.         {
  12.             switch (LOWORD(wp)) //信息种类
  13.             {
  14.             case IDOK://ok按钮
  15.                 {

  16.                     wchar_t newpwd[100] = {0}, newpwdConfig[100] = {0};
  17.                     MessageBox(0, L"您的密码已更改。", L"更改密码", MB_ICONINFORMATION|MB_TASKMODAL);//MB_TASKMODAL[这个标志制定出来的对话框时模式的。只能操作顶层的对话框。]
  18.                     //AfxMessageBox(L"dd");
  19.                 }
  20.                 break;
  21.             case IDCANCEL://删除按钮
  22.                 EndDialog(_hwnd, IDCANCEL);    //销毁对话框,并返回IDCANCEL
  23.                 break;
  24.             default:
  25.                 break;
  26.             }
  27.             return TRUE;
  28.         }
  29.     case WM_NCHITTEST:
  30.         {
  31.             SendMessage(_hwnd, WM_NCLBUTTONDOWN, HTCAPTION, lp);
  32.             break;
  33.         }
  34.     }
  35.     return FALSE;
  36. }
  37. void CMy2005DlgTestDlg::OnBnClickedButton10()
  38. {
  39.     // TODO: 在此添加控件通知处理程序代码

  40.     //DialogBoxParam();
  41.      DialogBoxParam(0, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc, (LPARAM)this);
  42. }
阅读(4810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~