对话框控件_Visual C++基础教程-查字典教程网
对话框控件
对话框控件
发布时间:2015-06-10 来源:查字典编辑
摘要:

通过前面的学习,我们已经能够创建一个属于自己的窗口,一个温暖的小屋,接下来该怎么布置,让她充满生机、透出灵气与和谐,自然的内在流露呢?


控件是组装好的一些常用Windows基本组件,就像我们房间里各种家具、各种电器,我们并不需要自己去制作,只要会精挑细选,准有最适合自己的一款;


在VC中系统已经准备好了各种控件,比如各种按钮、标签、列表框、滚动条、工具栏等等都是一些常用的控件,程序中的控件将作为一个构成程序的对象,可以对它进行一些设计和修饰;


控件是基于对话框的,也就是控件一般放在对话框当中,对话框(Dialog)是一种资源,它的定义放在资源文件里,


 当打开项目控制台的“资源”标签中的“Dialog”项,就可以看到文件区的一个对话框,同时右边还有一个工具箱,里面放了各种控件,使用时先选中,再画到对话框里头就可以了;


下面我们来学习如何在资源文件中创建一个对话框,并学习最基本的控件——按钮的使用方法;


1、启动VC,新建一个名为DialogWin32 Application工程,再新建一个相同名称的头文件源程序文件,在头文件中输入函数的申明,在源程序中输入窗口框架代码;


2、在头文件中输入函数申明,再加入资源中各个对象的标识符申明,代码如下:


BOOL APIENTRY DlgWndProc(HWND,UINT,WPARAM,LPARAM);
//对话框的消息处理过程


HWND hWndDlg;//对话框窗口的标识句柄
BOOL btxtRed,btxtBlue;
//文本的颜色布尔值


#define ID_RED 301
#define ID_BLUE 302
//两个颜色按钮标识符


3、用记事本新建一个相同文件名的资源文件Dialog.rc输入对话框的定义


#include "Dialog.h"

#include "afxres.h"//还需要这个头文件


// 定义一个对话框资源
COLORBOX DI
ALOGEX 5, 28, 162, 85//定义对话框的标识符和位置、大小


STYLE DS_
MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU//对话框风格


CAPTION "颜色对话框"  
//对话框标题


FONT 14, "仿宋"
//文本字体


BEGIN

    PUSHBUTTON "红色",ID_RED,16,61,50,14//按钮的位置、大小
   PUSHBUTTON "蓝色",ID_BLUE,77,61,50,14

END


保存并关闭文件,使用工程菜单中的“添加工程”命令将资源文件Dialog.rc加入到工程中


4、接下来加入主窗口的消息处理过程,我们设定在单击鼠标左键时调出对话框,代码如下:


LRESULT 
APIENTRY MainWndProc(
        HWND hWnd,UINT message,
WPARAM wParam,LPARAM lParam)
{
    HDC hdc;
    P
AINTSTRUCT ps;
//用于输出文本


    switch(message)
    {
    case W
M_PAINT: //输出一行提示
      hdc=BeginPaint(hWnd,&ps);


      if(btxtRed) 
        SetTextColor(hdc,RGB(255,0,0));
//红色


      if(btxtBlue)
        SetTextColor(hdc,RGB(0,0,255));
//蓝色


      TextOut(hdc,20,20,"单击鼠标左键调出对话框",lstrlen("单击鼠标左键调出对话框"));


      EndPaint(hWnd,&ps);
      break;
    case W
M_LBUTTONDOWN://左键按下了

      DialogBox(hInst,"COLORBOX",hWnd,(DLGPROC)DlgWndProc);
     
 //调用创建对话框的函数
      InvalidateRect(hWnd,NULL,TRUE);
//主窗口的提示更新一下
      break;


    case W
M_DESTROY:
      PostQuitMessage(0);
      break


    default:
      return(DefWindowProc(hWnd,message,wParam,lParam));
    }
    return (0);
}
4、对话框本身也是一个窗口,有自己的标题栏和框架,它也有自己的消息处理过程函数,代码如下:


//对话框消息处理过程

BOOL APIENTRY DlgWndProc(
        HWND hDlg,UINT message,
WPARAM wParam,LPARAM lParam)
{
    switch(message)
    {
      case W
M_INITDIALOG:

        return(TRUE);//要求创建对话框
      case 
WM_COMMAND://对话框的按钮消息
        switch(LOWORD(wParam))
        {
          case ID_RED:
//单击“红色”按钮
            btxtRed=TRUE;
//红色为真
            btxtBlue=FALSE;
//蓝色为假
            EndDialog(hDlg,FALSE);
//退出对话框
            break;


          case ID_BLUE:
//单击“蓝色”按钮
            btxtBlue=TRUE;
            btxtRed=FALSE;
            EndDialog(hDlg,FALSE);
//结束模式对话框
            break;
          case W
M_DESTROY://退出对话框
            EndDialog(hDlg,FALSE);
            break


          return (TRUE);
        }
        break;
    }
    return(F
ALSE);
}

保存一下文件,单击编译条上的“构建”按钮,如果出现错误就仔细检查一下,然后单击“执行”按钮,看看包含有两个窗口的应用程序程序窗口;


对话框当中也可以放置其他的控件对象,我们可以在里面绘制两个图片框,然后把图片框“属性”中的“类型”设为“Bitmap”,再在“图像”中选一个图片资源,从而加入图片,更多更详细的操作我们将会在MFC编程中学习;


本节学习了在用户区输出文字的代码设计,如果你成功地完成了练习,有关Windows编程基础的学习顺利结束,我们已步入视窗程序设计的广阔天地。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Visual C++基础入门教程学习
    热门Visual C++基础入门教程学习
    编程开发基础子分类