Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9711
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-11 23:13
文章分类
文章存档

2013年(2)

我的朋友
最近访客

分类: C/C++

2013-11-14 20:54:31

1.模态与非模态对话框的创建
    (1)模态对话框:首先在资源视图
Dialog个子目录下右击插入一个新的Dialog,然后右击该对话框为其添加一个类,类名为MyDlg,基类位CDialogEx,然后点击完成。然后在一个按键的响应函数中添加以下代码:           
            MyDlg my;
            INT_PTR nResponse= my.DoModal();
nResponse保存返回值,IDOK或者IDCANCEL,可以利用该值来进行下一步工作。
    (2)非模态对话框:过程同上,不过代码要这样写:
            MyDlg *my1 =new MyDlg();
            my1->Create(IDD_DIALOG1, this);   
            my1->ShowWindow(SW_SHOW);
IDD_DIALOG1位对话框的ID。

2.SendMessage()的使用
首先在在头文件总定义一个消息
    #define UM_TEST WM_USER+1
然后在类声明中添加消息映射函数
    afx_msg LRESULT OnTest(WPARAM wparam,LPARAM lparam);
    DECLARE_MESSAGE_MAP()
然后C++文件中添加消息响应
    ON_MESSAGE(UM_TEST,OnTest)
然后定义该函数
     LRESULT CdialogDlg::OnTest(WPARAM wparam,LPARAM lparam)
    {
        MessageBox(_T("JUST TEST"));
        SetDlgItemInt(IDC_EDITAB,wparam+lparam);   //这行是将两个传递进来的参数相加显示在一个编辑框控件上
        return TRUE;
    }
然后在一个按键响应函数中发送消息
    SendMessage(UM_TEST,3,5);

3.定时器的使用首先在头文件中定义一个定时器
    #define TIMER 1      //1为ID号
如果需要多个定时器,可以多定义几个,ID 号不同,然后就可以设置定时器了
   SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD));

                     定时器ID         定时时间        刷新时的响应函数,一般不用,将其设置为0

然后在需要定时器的地方使用SetTimer(TIMER,3000,0);此为设置一个三秒的定时器。
然后让对话框响应WM_TIMER消息,次消息的响应函数为OnTimer( UINT nIDEvent),
nIDEvent用来区分是哪个定时器的时间到了,如果需要取消一个定时器可以使用KillTimer( UINT nIDEvent);







阅读(972) | 评论(0) | 转发(0) |
0

上一篇:第一篇:做好自己的人生规划

下一篇:没有了

给主人留下些什么吧!~~