[MFC]对话框程序(基于VS2013)--2.主界面使用

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36251561/article/details/85208517

上一篇介绍了如何建立一个新的工程,这一篇主要讲述如何去使用界面,添加代码,实现功能

1.从工具箱中往界面添加控件

打开资源视图,打开Dialog文件夹,双击你的主界面文件出现如下情况后即可开始工作

2.打开工具箱添加一个,点击button,再点击主界面,主界面即出现按钮,右键选择属性,在属性栏中找到ID,将按钮命名IDC_TEST

往上找到Caption,将名称修改为test

这时我们点击保存按钮,然后打开,解决方案管理器,找到Resoure.h,打开。可以看到控件的标识符已经被写入了(这个就是一个很重要的功能,后面编译时如果提示IDC_XXXXXXX没有定义,可以把这个头文件加上即可),然后关闭这个文件,否则资源视图会打不开,因为正在占用资源文件。

回到资源视图,双击test按钮,进入如下界面

 

一般情况下,一个按钮事件是有三部分组成的

如,在这个函数里添加一句

AfxMessageBox(_T("这个是test按钮!"));

 运行本地Windows调试器,点击test按钮,然后会得到这样的效果

其他控件的使用CSDN上有很多很多的例子我就不一一列举了 

展开阅读全文

VS2013 MFC对话框使用easysize文件的问题!

03-19

问题如下:rn[img=https://img-bbs.csdn.net/upload/201603/19/1458389052_572635.png][/img]rn代码如下:(检查过了,没有ID之类的错写的问题,并且easysize.h文件已拷入项目)rn// AutoCAD_ExpressEditionDlg.h : 头文件rn//rnrn#pragma oncernrn#include "easysize.h"rnrnrn// CAutoCAD_ExpressEditionDlg 对话框rnclass CAutoCAD_ExpressEditionDlg : public CDialogExrnrn DECLARE_EASYSIZErn// 构造rnpublic:rn CAutoCAD_ExpressEditionDlg(CWnd* pParent = NULL); // 标准构造函数rnrn// 对话框数据rn enum IDD = IDD_AUTOCAD_EXPRESSEDITION_DIALOG ;rnrn protected:rn virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持rnrnrn// 实现rnprotected:rn HICON m_hIcon;rnrn // 生成的消息映射函数rn virtual BOOL OnInitDialog();rn afx_msg void OnSysCommand(UINT nID, LPARAM lParam);rn afx_msg void OnPaint();rn afx_msg HCURSOR OnQueryDragIcon();rn DECLARE_MESSAGE_MAP()rnpublic:rn afx_msg void OnSize(UINT nType, int cx, int cy);rn afx_msg void OnSizing(UINT fwSide, LPRECT pRect);rn;rnrnrnrn// AutoCAD_ExpressEditionDlg.cpp : 实现文件rn//rnrn#include "stdafx.h"rn#include "AutoCAD_ExpressEdition.h"rn#include "AutoCAD_ExpressEditionDlg.h"rn#include "afxdialogex.h"rn#include "easysize.h"rnrn#ifdef _DEBUGrn#define new DEBUG_NEWrn#endifrnrnrn// 用于应用程序“关于”菜单项的 CAboutDlg 对话框rnrnclass CAboutDlg : public CDialogExrnrnpublic:rn CAboutDlg();rnrn// 对话框数据rn enum IDD = IDD_ABOUTBOX ;rnrn protected:rn virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持rnrn// 实现rnprotected:rn DECLARE_MESSAGE_MAP()rn;rnrnCAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)rnrnrnrnvoid CAboutDlg::DoDataExchange(CDataExchange* pDX)rnrn CDialogEx::DoDataExchange(pDX);rnrnrnBEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)rnEND_MESSAGE_MAP()rnrnrn// CAutoCAD_ExpressEditionDlg 对话框rnrnrnrnCAutoCAD_ExpressEditionDlg::CAutoCAD_ExpressEditionDlg(CWnd* pParent /*=NULL*/)rn : CDialogEx(CAutoCAD_ExpressEditionDlg::IDD, pParent)rnrn m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);rnrnrnvoid CAutoCAD_ExpressEditionDlg::DoDataExchange(CDataExchange* pDX)rnrn CDialogEx::DoDataExchange(pDX);rnrnrnBEGIN_MESSAGE_MAP(CAutoCAD_ExpressEditionDlg, CDialogEx)rn ON_WM_SYSCOMMAND()rn ON_WM_PAINT()rn ON_WM_QUERYDRAGICON()rn ON_WM_SIZE()rn ON_WM_SIZING()rnEND_MESSAGE_MAP()rnrn// CAutoCAD_ExpressEditionDlg 消息处理程序rnrnBOOL CAutoCAD_ExpressEditionDlg::OnInitDialog()rnrn CDialogEx::OnInitDialog();rnrn // 将“关于...”菜单项添加到系统菜单中。rnrn // IDM_ABOUTBOX 必须在系统命令范围内。rn ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);rn ASSERT(IDM_ABOUTBOX < 0xF000);rnrn CMenu* pSysMenu = GetSystemMenu(FALSE);rn if (pSysMenu != NULL)rn rn BOOL bNameValid;rn CString strAboutMenu;rn bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);rn ASSERT(bNameValid);rn if (!strAboutMenu.IsEmpty())rn rn pSysMenu->AppendMenu(MF_SEPARATOR);rn pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);rn rn rnrn // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动rn // 执行此操作rn SetIcon(m_hIcon, TRUE); // 设置大图标rn SetIcon(m_hIcon, FALSE); // 设置小图标rnrn // TODO: 在此添加额外的初始化代码rn INIT_EASYSIZE;rn return TRUE; // 除非将焦点设置到控件,否则返回 TRUErnrnrnvoid CAutoCAD_ExpressEditionDlg::OnSysCommand(UINT nID, LPARAM lParam)rnrn if ((nID & 0xFFF0) == IDM_ABOUTBOX)rn rn CAboutDlg dlgAbout;rn dlgAbout.DoModal();rn rn elsern rn CDialogEx::OnSysCommand(nID, lParam);rn rnrnrn// 如果向对话框添加最小化按钮,则需要下面的代码rn// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,rn// 这将由框架自动完成。rnrnvoid CAutoCAD_ExpressEditionDlg::OnPaint()rnrn if (IsIconic())rn rn CPaintDC dc(this); // 用于绘制的设备上下文rnrn SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);rnrn // 使图标在工作区矩形中居中rn int cxIcon = GetSystemMetrics(SM_CXICON);rn int cyIcon = GetSystemMetrics(SM_CYICON);rn CRect rect;rn GetClientRect(&rect);rn int x = (rect.Width() - cxIcon + 1) / 2;rn int y = (rect.Height() - cyIcon + 1) / 2;rnrn // 绘制图标rn dc.DrawIcon(x, y, m_hIcon);rn rn elsern rn CDialogEx::OnPaint();rn rnrnrn//当用户拖动最小化窗口时系统调用此函数取得光标rn//显示。rnHCURSOR CAutoCAD_ExpressEditionDlg::OnQueryDragIcon()rnrn return static_cast(m_hIcon);rnrnrnrnrnvoid CAutoCAD_ExpressEditionDlg::OnSize(UINT nType, int cx, int cy)rnrn CDialogEx::OnSize(nType, cx, cy);rnrn // TODO: 在此处添加消息处理程序代码rn UPDATE_EASYSIZE;rnrnrnrnvoid CAutoCAD_ExpressEditionDlg::OnSizing(UINT fwSide, LPRECT pRect)rnrn CDialogEx::OnSizing(fwSide, pRect);rnrn // TODO: 在此处添加消息处理程序代码rn EASYSIZE_MINSIZE(600, 400, fwSide, pRect);rnrnrnBEGIN_EASYSIZE_MAP(CAutoCAD_ExpressEditionDlg)rn EASYSIZE(IDC_BUTTON1, 100, 200, 300, ES_BORDER, 0)rnEND_EASYSIZE_MAP 论坛

没有更多推荐了,返回首页