为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

消息对话框

2017-12-02 11页 doc 30KB 12阅读

用户头像

is_212655

暂无简介

举报
消息对话框消息对话框 //一。应用程序类 CDlogApp theApp; //唯一的应用程序类CDlogApp的实例对象 BOOL CDlog::InitInstance() //应用程序初始化 { AfxEnableControcontainer(); //标准初始化 CDlog dlg; //主对话框类实例对象 m_pMainWnd = &dlg; //赋给应用程序类成员 int nResponse = dlg.DoModal(); //显示主对话框窗口 return FALSE; } //二。主对话框窗口类...
消息对话框
消息对话框 //一。应用程序类 CDlogApp theApp; //唯一的应用程序类CDlogApp的实例对象 BOOL CDlog::InitInstance() //应用程序初始化 { AfxEnableControcontainer(); //标准初始化 CDlog dlg; //主对话框类实例对象 m_pMainWnd = &dlg; //赋给应用程序类成员 int nResponse = dlg.DoModal(); //显示主对话框窗口 return FALSE; } //二。主对话框窗口类 //包含构造CDlogDlg,数据交换函数DoDataExchange,初始化对话框函数OnInitDialog,绘制函数OnPaint 等。 CDlogDlg::CDlogDlg(CWnd* pParent/*=NULL*/) //构造函数 :CDialog(CDlogDlg::IDD,pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); //载入对话框窗口图标 } //动态数据交换 Void CDlogDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } //初始化对话框 BOOL CDlogDlg::OnInitDialog() { CDialog::OnInitDialog(); //将About菜单项添加到系统菜单 //设置对话框图标 //在此添加初始化代码 return TRUE; } //系统命令消息响应函数 BOOL CDlogDlg::OnSysCommand(UINT nID,LPARAM IParam) { if((nID&0xFFF0)==IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID,IParam); } } //窗口绘制 void CDlogDlg::OnPaint() { If(IsIconic()) //包含图标 { CPaintDC dc(this); //CPaintDC实例 SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(),0); //发送消息 //将图标放置在客户区中间 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width()-cxIcon+1)/2; int y = (rect.Height()-cyIcon+1)/2; dc.DrawIcon(x,y,m_hIcon); //绘制图标 } else //未包含图标 { CDialog::OnPaint(); } } HCURSOR CDlogDlg::OnQueryDragIcon() { return (HCURSOR)m_hIcon; } 三。消息对话框 Int MessageBox ( LPCTSTR lpszText, //提示信息内容 LPCTSTR lpszCaption, //消息对话框标 UINT nType //消息对话框的样式 ); //消息对话框样式 MB_ICONHAND、MB_ICONSTOP、MB_ICONERROR MB_ICONEXCLAMATION、MB_ICONWARNING MB_ICONQUESTION MB_ICONASTERISK、MB_ICONINFORMATION //消息对话框按钮类型 MB_OK MB_OKCANCEL MB_YESNO MB_YESNOCANCEL MB_RETRYCANCEL MB_ABORTRETRYINGNORE //消息对话框返回值及其含义 返回值 含义 IDABORT 单击Abort(放弃)按钮 IDCANCEL 单击Cancel(取消)按钮 IDIGNORE 单击Ignore(忽略)按钮 IDNO 单击No(否)按钮 IDOK 单击Ok(确定)按钮 IDRETRY 单击Retry(重试)按钮 IDYES 单击Yes(确定)按钮 //消息对话框的其他样式 样式参数 样式说明 MB_DEFBUTTONx 设置第x个按钮为默认按钮,其中x=1~4 MB_HELP 添加“希望”按钮 MB_RIGHT 提示信息内容右对齐 MB_SETFORGROUND 消息对话框显示在桌面的最前面 MB_TOPMOST 消息对话框总显示在桌面的最前面 四(公用对话框 由CCommonDialog派生而来 1(文件对话框 文件对话框(CFileDialog)可以实现Windows标准的Open(打开),Save As(保存)对话框。CFileDialog类对象构造如下: CFileDialog( BOOL bOpenFileDialog, //文件对话框类型 LPCTSTR lpszDefExt = NULL, //默认文件扩展名 LPCTSTR lpszFileName = NULL, //文件名 DWORD dwFlags = OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, //文件造作标记 LPCTSTR lpszFilter = NULL, //过滤器 CWnd* pParentWnd = NULL //父窗口指针 ); CfileDialog提供了以下若干成员函数,用于获取文件信息 CString GetPathName:返回所选文件的完整路径。 CString GetFileName:返回所选文件的完整名称。 CString GetFileExt:返回所选文件的扩展名。 CString GetFileTitle:返回所选文件的标题名。 2(“字体”对话框 CFontDialog( LPLOGFONT lplfInitial = NULL, //初始化字符字体 DWORD dwFlags = CF_EFFECTS|CF_SCREENFONTS, //字体选择标记 CDC* pdcPrinter = NULL, //打印设备 CWnd* pParentWnd = NULL //父窗口指针 ) CFontDialog提供了以下若干成员函数,用于获取字体信息 void GetCurrentFont:返回当前所选的字体 CString GetFaceName:返回所选字体的字体名称 CString GetStyleName:返回所选字体的样式名称 Int GetSize:返回所选字体的大小 COLORREF GetColor:返回所选字体的颜色 int GetWeight:返回所选字体的磅数 BOOL IsStrikeOut:确定字体是否带有删除线 BOOL IsUnderLine:确定字体是否带有下划线 BOOL IsBold:确定字体是否为粗体 BOOL IsItalic:确定字体是否为斜体 3(“颜色”对话框 CColorDialog( COLORREF cleInit =0, //默认选择的颜色 DWORD dwFlags = 0, //颜色选择标记 CWnd* pParentWnd = NULL //父窗口指针 ); COLORREF GetColor:返回当前选择的颜色 COLORREF* GetSavedCustomColors:返回所选的颜色 Void SetCurrentColor:设置当前的颜色 BOOL OnColorOK:验证输入到对话框中的颜色 4(“页面设置”对话框 CpageSetupDialog( //定制页面,设置对话框标记 DWORD dwFlags = PSD_MARGINS|PSD_INWINININTLMEASURE, //父窗口指针 CWnd* pParentWnd = NULL ) CString GetDeviceName:返回所选打印机的设备名称 LPDEVMODE GetDevMode:返回所选打印机的设备模式 CString GetDriverName:返回所选打印机的设备驱动 CString GetPortName:返回所选打印机的输出端口名称 CSize GetPaperSize:返回所选打印机的页面大小 Void GetMargins:返回所选打印机的边距 5(“打印”对话框 CPrintDialog( BOOL bPrintSetupOnly, //是否带设置对话框 DWORD dwFlags = PD_ALLPAGES|PD_USEDEVMODECOPIES|PD_NOPAGENUMS PD_HIDEPRINTTOFILE|PD_NOSELECTION CWnd* pParentWnd = NULL //父窗口指针 ); Int GetCopies:返回请求的副本数 BOOL GetDefaults:返回默认的设备 Int GetFromPage:返回打印范围的开始页 Int GetToPage:返回打印范围的结束页 HDC GetPrinterDC: 返回打印设备句柄 BOOL PrintAll: 确定是否打印全部文档 BOOL PrintCollate: 确定是否自动分页 BOOL PrintRange:确定是否仅打印页面的制定范围 BOOL PrintSelection:确定是否进打印当前选择的项目 6(“查找替换”对话框 CFindReplaceDialog( BOOL Create( BOOL bFindDialogOnly, //显示“查找”或“查找替换”对话框 LPCTSTR lpszFindWhat, //指定搜索的字符串 LPCTSTR lpszReplaceWith = NULL, //指定替换字符串 DWORD dwFlags = FR_DOWN, //定制查找替换标记 CWnd* pParentWnd = NULL //父窗口指针 ) ); BOOL FindNext:搜索下一个匹配的字符串 CFindReplaceDialog* PASCAL GetNotifier:返回当前对话框的指针 CString GetFindString:返回搜索的默认字符串 CString GetReplaceString: 返回替换字符串 BOOL IsTerminating: 确定是否终止了对话框 BOOL MathCase: 确定字符串是否大小写完全匹配 BOOL MathWholeWord: 确定字符串是否整字匹配 BOOL ReplaceAll: 确定是否全部替换所有搜索到的字符串 BOOL ReplaceCurrent:确定是否替换当前字符串 BOOL SearchDown: 确定是否向下搜索 五(标准消息 1(Windows消息 消息类型,从功能上大致可分为以下3种: A(标准消息:以WM_为前缀的消息。除了(WM_COMMAND)。 B(命令消息:以WM_COMMAND为消息名称,在消息中包含有命令的标识符和ID,用以区分菜单栏,工具栏,快捷键。 C(通知消息:以WM_COMMAND为消息名称,是Windows窗口中 的控件或子窗口发送给父窗口的通知消息。 2(消息处理 A(消息响应 Windows将每个事件都封装成一个称为消息的结构体MSG中,并将 其传递给应用程序。定义如下: Typedef struct tagMSG{ //MSG结构体 HWND hwnd; //接收消息的窗口句柄 UINT message; //消息标记号 WPARAM wParam; //消息的WPARAM参数 LPARAM lParam; //消息的LPARAM参数 DWORD time; //制定消息发送的时间 POINT pt; //指定光标位置 }MSG; B(消息映射 B(1在类的定义中添加一行宏调用 Class CDlogApp::public CwinApp { DECLARE_MESSAGE_MAP() //宏调用 } B(2在类的实现中添加消息映射 BEGIN_MESSAGE_MAP(CDlogApp,CWinApp) //消息映射表开始 ON_COMMAND(ID_APP_ABOUT,OnAppAbout) //消息映射入口 END_MESSAGE_MAP() C(消息响应函数 C(1在类的定义中添加该消息函数的函数声明 Afx_msg void OnAppAbout() {} 3(键盘消息 WM_CHAR:放下并放开一个键,输入了一个字符 WM_KEYDOWN:按下一个键 WM_KEYUP:释放一个键 WM_CHAR的消息响应函数为OnChar,声明如下: Afx_msg void OnChar( UINT nChar, //按键的字符代码 UINT nRepCnt, //按键的重复次数 UINT nFlag //扫描码、先前建状态、键转换状态等 ) 4(鼠标消息 WM_LBUTTONDOWN:按下鼠标左键 WM_LBUTTONUP:释放鼠标左键 WM_LBUTTONDBLCLK:双击鼠标左键 WM_RBUTTONDOWN:按下鼠标右键 WM_RBUTTONUP:释放鼠标右键 WM_RBUTTONDBLCLK:双击鼠标右键 WM_MOUSEMOVE:移动鼠标 Afx_msg void OnLButtonDown( UINT nFlags, //虚拟键是否被按下 CPoint point //光标的位置(基于设备坐标系) ) 5(窗口消息 WM_CHREATE:创建窗口,可加入初始化代码 WM_CLOSE:关闭窗口之前 WM_DESTROY:销毁窗口之前 WM_PAINT:重绘窗口 WM_SIZE:改变窗口大小 WM_MOVE:移动窗口 Afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); Afx_msx void OnPaint(); Afx_msg void OnSize( UINT nType //改变大小的类型 Int cx, //新窗口客户去的宽度 Int cy //新窗口客户去的高度 ); Afx_msg void OnMove( Int cx, //窗口新位置的x坐标 Int cy //窗口新位置的y坐标 ); 6(定时消息 WM_TIMER定时器消息函数声明 UINT SetTimer( UINT nIDEvent, //非零的事件标识 UINT nElapse, //计时器间隔时间 Void(CALLBACK EXPORT* lpfnTimer)(HWND,UINT,UINT,DWORD) ); Afx_msg void OnTimer( UINT nIDEvent //SetTimer函数制定的事件标识 ); 7(命令消息 当用户选择一个菜单命令、单击一个工具栏按钮或按下一个快捷键 时,就会产生消息WM_COMMAND BEGIN_MESSAGE_MAP(CDlogApp,CWinApp) //消息映射表开始 ON_COMMAND(ID_APP_ABOUT,OnAppAbout) //消息映射入口 ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN,CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp::OnFilePrintSetUp) END_MESSAGE_MAP() 可以看到,命令消息影射的一半形式如下: ON_COMMAND(ID_XXX,OnXXX) 其中ID_XXX为该命令消息响应函数对应的菜单、工具栏按钮或快 捷键标识的ID
/
本文档为【消息对话框】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索