MFC函数自学手册.docx
《MFC函数自学手册.docx》由会员分享,可在线阅读,更多相关《MFC函数自学手册.docx(43页珍藏版)》请在冰豆网上搜索。
MFC函数自学手册
视频5:
文本编辑
1.函数的功能:
字体的创建
函数原型:
CFont:
:
CreatePointFont
BOOLCreatePointFont(intnPointSize,//字体的大小
LPCTSTRlpszFaceName,//字体的名字
CDC*pDC=NULL);
其他说明(返回值、参数):
无
2.函数的功能:
输出字符串宽度平滑加大
函数原型:
CDC:
:
DrawText
intDrawText(constCString&str,//输出文字的字符串
LPRECTlpRect,//输出的矩形宽度
UINTnFormat//输出的格式
);
其他说明:
uFormat选择DT_LEFT:
左对齐方式。
通过矩形宽度的平滑增加而实现。
3.函数的功能:
设置一个定时器
函数原型:
CWnd:
:
SetTimer
UINTSetTimer(UINTnIDEvent,//设置一个定时器的标识
UINTnElapse,//每隔多长时间发送定时消息,ms为单位
void(CALLBACKEXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD)
);
其他说明:
函数调用成功讲返回第一个参数的标识值。
第三个参数设置为NULL,回调函数讲放在消息队列中处理,对应消息WM_TIMER。
视频6:
菜单
1.函数的功能:
应用程序框架消息盒显示的函数
函数原型:
AfxMessageBox(“Docclicked”);
其他说明:
无
2.函数的功能:
获取菜单栏的指针
函数原型:
CWnd:
:
GetMenu
CMenu*GetMenu()const;
其他说明:
返回一个指向菜单栏的指针。
3.函数的功能:
获取一个子菜单
函数原型:
CMenu:
:
GetSubMenu
CMenu*GetSubMenu(intnPos)const;
其他说明:
返回一个指向子菜单的指针。
参数为子菜单的索引。
Cmenu对象调用该函数。
4.函数的功能:
在一个菜单项上放置一个标记
函数原型:
CMenu:
:
CheckMenuItem
UINTCheckMenuItem(UINTnIDCheckItem,UINTnCheck);
其他说明:
第一个参数取值由第二个参数决定。
第二个参数取值MF_BYCOMMAND第一个参数取值菜单的ID号。
第二的参数取值MF_BYPOSITION第一个参数代表菜单的索引号。
第二个参数取值MF_CHECKEDorMF_UNCHECKEDwithMF_BYPOSITIONorMF_BYCOMMAND的组合。
5.函数的功能:
设置缺省的菜单项,缺省菜单项就是以粗体显示。
函数原型:
CMenu:
:
SetDefaultItem
BOOLSetDefaultItem(UINTuItem,BOOLfByPos=FALSE);
其他说明:
第二个参数为FLASE第一个参数为命令的ID,第二的参数为TURE第一个参数为索引号。
6.函数的功能:
图形标记菜单的创建
函数原型:
CMenu:
:
SetMenuItemBitmaps
BOOLSetMenuItemBitmaps(UINTnPosition,UINTnFlags,constCBitmap*pBmpUnchecked,constCBitmap*pBmpChecked);
其他说明:
第二个参数取值MF_BYCOMMAND第一个参数取值菜单的ID号。
第二的参数取值MF_BYPOSITION第一个参数代表菜单的索引号。
后面2个参数都是位图的指针,第一个为选中位图,第二个为未选中位图。
7..函数的功能:
获取一个系统信息的度量
函数原型:
intGetSystemMetrics(intnIndex);//systemmetricorconfigurationsetting
其他说明:
参数分别选SM_CXMENUCHECK,SM_CYMENUCHECK,返回一个菜单项图形标记的宽度和高度。
8.函数的功能:
将字符串格式化到字符串对象当中
函数原型:
CString:
:
Format
其他说明:
无
9.函数的功能:
让一个菜单项失效
函数原型:
CMenu:
:
EnableMenuItem
UINTEnableMenuItem(UINTnIDEnableItem,UINTnEnable);
其他说明:
第二个参数取值MF_BYCOMMAND第一个参数取值菜单的ID号。
第二的参数取值MF_BYPOSITION第一个参数代表菜单的索引号。
第二个参数组合MF_DISABLED,MF_ENABLED,orMF_GRAYED,withMF_BYCOMMANDorMF_BYPOSITION。
备注:
在CMainFrame的构造函数中设置m_bAutoMenuEnable=FALSE。
10.函数的功能:
如何更换或取消整个菜单栏
函数原型:
CWnd:
:
SetMenu
BOOLSetMenu(CMenu*pMenu);
其他说明:
如果参数为空,当前的菜单栏将被移除。
如果为CMenu对象的地址则设定这个菜单栏。
11.函数的功能:
CMenu对象加载一个菜单栏
函数原型:
CMenu:
:
LoadMenu
BOOLLoadMenu(LPCTSTRlpszResourceName);
BOOLLoadMenu(UINTnIDResource);
其他说明:
无
12.函数的功能:
命令更新,让一个菜单项有效或失效。
函数原型:
CCmdUI:
:
Enable
virtualvoidEnable(BOOLbOn=TRUE);
其他说明:
CCmdUI类没有基类。
参数为TURE时菜单项有效,为FALSE菜单项无效。
调用时,使用CCmdUI的对象调用该函数。
13.函数的功能:
该函数在指定位置显示快捷菜单,并跟踪菜单项的选择。
函数原型:
CMenu:
:
TrackPopupMenu
BOOLTrackPopupMenu(UINTnFlags,intx,inty,CWnd*pWnd,LPCRECTlpRect=NULL);
其他说明:
第二三参数为菜单显示的屏幕参考点,第一个参数为显示参考点的哪个位置TPM_CENTERALIGNorTPM_LEFTALIGNorTPM_RIGHTALIGNorTPM_RIGHTBUTTON。
第四个参数决定在那个类中快捷菜单项能后实行命令响应。
比如this就只能在C*View类中响应,GetParent()就只能在CmainFrame类中响应。
14.函数的功能:
客户区坐标转换为屏幕坐标
函数原型:
CWnd:
:
ClientToScreen
voidClientToScreen(LPPOINTlpPoint)const;
voidClientToScreen(LPRECTlpRect)const;
其他说明:
无
15.函数的功能:
添加一个弹出菜单、弹出菜单的菜单项、子菜单、子菜单的菜单项到末尾
函数原型:
CMenu:
:
AppendMenu
BOOLAppendMenu(UINTnFlags,UINTnIDNewItem=0,LPCTSTRlpszNewItem=NULL);
其他说明:
第一个参数为MF_POPUP,创建一个弹出菜单,第二个参数设置为菜单栏的句柄。
如果第一个参数设置为MF_SEPARATOR即分隔栏,第二个参数就忽略。
第一个参数为MF_STRING,第二个参数为菜单项的ID号,第三个为菜单的名字。
第三个参数为名称。
16.函数的功能:
创建一个空的弹出菜单,并且关联一个Cmenu对象。
函数原型:
CMenu:
:
CreatePopupMenu
BOOLCreatePopupMenu();
其他说明:
无
17.函数的功能:
插入一个弹出菜单、弹出菜单的菜单项、子菜单、子菜单的菜单项
函数原型:
CMenu:
:
InsertMenu
BOOLInsertMenu(UINTnPosition,UINTnFlags,UINTnIDNewItem=0,LPCTSTRlpszNewItem=NULL);
其他说明:
无
18.函数的功能:
删除一个子菜单、菜单项、弹出菜单
函数原型:
CMenu:
:
DeleteMenu
BOOLDeleteMenu(UINTnPosition,UINTnFlags);
其他说明:
第二的参数为MF_BYPOSITION,第一个参数为索引号。
19.函数的功能:
在窗口已经被创建后,菜单栏改变后重绘菜单栏
函数原型:
CWnd:
:
DrawMenuBar
voidDrawMenuBar();
其他说明:
在View类中让父窗口的菜单重绘应该这么调用Getparent()->DrawMenuBar();
20.函数的功能:
输出字符串
函数原型:
CDC:
:
TextOut
BOOLTextOut(intx,inty,constCString&str);
其他说明:
CDC类的对象调用该函数。
21.函数的功能:
让真个客户端消息无效,引起窗口的重绘
函数原型:
CWnd:
:
Invalidate
voidInvalidate(BOOLbErase=TRUE);
其他说明:
参数为TURE,背景被擦除。
参数FLASE,背景保留。
22.函数的功能:
在一个字符串中找一个字符第一个字符的索引
函数原型:
CString:
:
Find
intFind(TCHARch)const;
其他说明:
无
23.函数的功能:
取一个值的低字节序
函数原型:
WORDLOWORD(DWORDdwValue);
其他说明:
无
24.函数的功能:
取一个值的高字节序
函数原型:
WORDHIWORD(DWORDdwValue);
其他说明:
无
视频7对话框
1.函数的功能:
创建一个非modal对话框
函数原型:
CDialog:
:
Create
BOOLCreate(LPCTSTRlpszTemplateName,CWnd*pParentWnd=NULL);
BOOLCreate(UINTnIDTemplate,CWnd*pParentWnd=NULL);、
其他说明:
第一个参数为一个对话框模板的名字或ID号。
第二个参数为其父窗口的指针。
如果第二个参数为NULL,则其父窗口为主应用程序窗口。
2.函数的功能:
显示一个窗口
函数原型:
CWnd:
:
ShowWindow
BOOLShowWindow(intnCmdShow);
其他说明:
参数可以选SW_SHOW
3.函数的功能:
创建一个按钮
函数原型:
CButton:
:
Create
BOOLCreate(LPCTSTRlpszCaption,//控件的文本
DWORDdwStyle,//控件的类型,可以选BS_DEFPUSHBUTTON
constRECT&rect,CWnd*pParentWnd,//控件矩形区域和控件父窗口
UINTnID//控件ID号
);
其他说明:
第二个类型buttonstyles和windowstyles可以同时选择,如果没有调用windowstyles,那么在控件创建后还要调用showwindow函数将按钮显示出来。
4.函数的功能:
销毁一个窗口
函数原型:
CWnd:
:
DestroyWindow
virtualBOOLDestroyWindow();
其他说明:
无
5.函数的功能:
获取一个窗口的文本
函数原型:
CWnd:
:
GetWindowText
voidGetWindowText(CString&rString)const;
intGetWindowText(LPTSTRlpszStringBuf,intnMaxCount)const;
其他说明:
第一个函数参数用来保存窗口的文本。
第二个函数第一个参数为一个字符串的指针用来存储字符串,第二个参数为拷贝到第一个字符串指针最大的数目。
6.函数的功能:
返回一个CWnd的指针,获取对话框控件的指针或子窗口的指针,大多情况下用在对话框内当中
函数原型:
CWnd:
:
GetDlgItem
CWnd*GetDlgItem(intnID)const;
其他说明:
参数为控件的ID号,用ID号识别对话框中的控件。
7.函数的功能:
设置一个窗口的文本
函数原型:
CWnd:
:
SetWindowText
voidSetWindowText(LPCTSTRlpszString);
其他说明:
无
8.函数的功能:
字符串内容装换为数值
函数原型:
intatoi(constchar*string);
其他说明:
无
9.函数的功能:
数值转换为字符串
函数原型:
char*_itoa(intvalue,char*string,intradix);
其他说明:
第一参数为被装换的数值,第二个参数为转换结果存储的字符串指针,第三个参数为进制。
10.函数的功能:
获取一个子控件的文本
函数原型:
CWnd:
:
GetDlgItemText
intGetDlgItemText(intnID,LPTSTRlpStr,intnMaxCount)const;
intGetDlgItemText(intnID,CString&rString)const;
其他说明:
该函数相当于CWnd:
:
GetDlgItem 和CWnd:
:
GetWindowText的和。
第一个参数为控件的ID,第二个参数为存放字符串的指针,第三个为获取的字符串最大数目。
11.函数的功能:
设置一子控件的文本
函数原型:
CWnd:
:
SetDlgItemText
voidSetDlgItemText(intnID,LPCTSTRlpszString);
其他说明:
和上一个说明相似。
12.函数的功能:
获取一个对话框控件的文本,在转换为整型返回。
函数原型:
CWnd:
:
GetDlgItemInt
UINTGetDlgItemInt(intnID,BOOL*lpTrans=NULL,BOOLbSigned=TRUE)const;
其他说明:
参数1为控件的ID号。
参数2为转换标志,设为NULL,当获取失败将不发生警告。
参数3为接受被转换的值是否有符号,设为TURE表明处理一个有符号的数字。
13.函数的功能:
设置一个对话框控件的数值
函数原型:
CWnd:
:
SetDlgItemInt
voidSetDlgItemInt(intnID,UINTnValue,BOOLbSigned=TRUE);
其他说明:
和上一个说明相似。
14.函数的功能:
发送一个消息
函数原型:
SendMessage(
(HWND)hWnd,//handletodestinationwindow
WM_GETTEXT,//messagetosend
(WPARAM)wParam,//numberofcharacterstocopy
(LPARAM)lParam//textbuffer
);
其他说明:
WM_GETTEXT获取一个文本消息,WM_SETTEXT设置一个文本消息。
15.函数的功能:
发送一个消息
函数原型:
CWnd:
:
SendMessage
LRESULTSendMessage(UINTmessage,WPARAMwParam=0,LPARAMlParam=0);
其他说明:
CWnd的对象调用该函数。
16.函数的功能:
给子控件发送一个消息
函数原型:
CWnd:
:
SendDlgItemMessage
LRESULTSendDlgItemMessage(intnID,UINTmessage,WPARAMwParam=0,LPARAMlParam=0);
其他说明:
CWnd的对象调用该函数。
第一个参数为子控件的ID号。
该函数等价于先调用CWnd:
:
GetDlgItem 后调用CWnd:
:
SendMessage。
17.函数的功能:
EM_GETSEL消息获取编辑框复选内容
函数原型:
SendMessage(
(HWND)hWnd,//handletodestinationwindow
EM_GETSEL,//messagetosend
(WPARAM)wParam,//startingposition(LPDWORD)
(LPARAM)lParam//endingposition(LPDWORD)
);
其他说明:
第三个参数为复选的起始位置,第四个参数为复选的结束位置。
如果开始位置设为0,结束位置设为-1,则所有文本被复选。
18.函数的功能:
设置一个窗口的焦点,并返回一个先前具有输入焦点的窗口所对应C++类的指针
函数原型:
CWnd:
:
SetFocus
CWnd*SetFocus();
其他说明:
CWnd的对象调用该函数。
下面函数与对话框的收缩与扩展相关
19.函数的功能:
检测一个矩形区域是否为空,通过判断矩形的宽度和高度为0。
函数原型:
CRect:
:
IsRectEmpty
BOOLIsRectEmpty()const;
其他说明:
无
20.函数的功能:
检测一个矩形区域是否为空,通过判断四个坐标值是否为0。
函数原型:
CRect:
:
IsRectNull
BOOLIsRectNull()const;
其他说明:
无
21.函数的功能:
获取一个窗口的矩形区域
函数原型:
CWnd:
:
GetWindowRect
voidGetWindowRect(LPRECTlpRect)const;
其他说明:
参数为矩形区域的指针。
获取的坐标为屏幕的左上角为原点。
函数原型:
CWnd:
:
ScreenToClient
voidScreenToClient(LPPOINTlpPoint)const;
voidScreenToClient(LPRECTlpRect)const;
其他说明:
将屏幕区域坐标转换为客户区域坐标。
22.函数的功能:
RECT结构体
函数原型:
typedefstructtagRECT{
LONGleft;//左上角的x坐标
LONGtop;//左上角的y坐标
LONGright;//右下角的x坐标
LONGbottom;//右下角的y坐标
}RECT;
其他说明:
无
23.函数的功能:
改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。
函数原型:
CWnd:
:
SetWindowPos
BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);
其他说明:
x,y为窗口左上角的坐标。
cx和cy指的是窗口的高度和宽度。
nFlag选择SWP_NOMOVE就忽略x,y的值,选择SWP_NOZORDER就忽略pWndInsertAfter的值。
24.函数的功能:
改变一个指定窗口的属性
函数原型:
LONGSetWindowLong(HWNDhWnd,//handletowindow
intnIndex,//offsetofvaluetoset
LONGdwNewLong//newvalue
);
其他说明:
第一个参数为改变窗口的句柄,第二参数为一个值的偏移量为GWL_WNDPROC时可以设置一个窗口的地址,第三个参数为新窗口的地址。
函数成功返回先前的32位窗口地址的整型值。
25.函数的功能:
获取编辑框下一个窗口的句柄
函数原型:
HWNDGetNextWindow(HWNDhWnd,//handletocurrentwindow
UINTwCmd//direction
);
其他说明:
第二个参数可以选择GW_HWNDNEXT和GW_HWNDPREV。
26.函数的功能:
获取窗口句柄的函数
函数原型:
HWNDGetWindow(HWNDhWnd,//handletooriginalwindow
UINTuCmd//relationship
);
其他说明:
第二参数可以取GW_HWNDLAST、GW_HWNDNEXT、GW_HWNDPREV、GW_CHILD等。
27.函数的功能:
获取一个句柄指向第一个具有WS_TABSTOP类型的控件。
函数原型:
HWNDGetNextDlgTabItem(HWNDhDlg,//handletodialogbox
HWNDhCtl,//handletoknowncontrol
BOOLbPrevious//directionflag
);
其他说明:
第一个参数为对话框的句柄,第二个参数为已知控件的句柄也就是从哪一个控件开始查找。
第三个参数为方向的标记为TURE时搜索先前的控件,为FALSE时搜索下一个控件。
视频8对话框属性表单
创建属性表单类:
Insert->NewClass->名字叫C*Sheet,基类选择CPropertySheet->OK。
如何将属性页增加到属性表单当中:
在属性表单的构造函数当中调用CPropertySheet:
:
AddPage。
在属性表单中创建属性页的对象和增加他们各自的头文件。
如何创建一个向导对话框:
步骤和创建属性表单一样,但在调用DoModal之前要先调用SetWizardMode
如何在属性页中增加一个虚函数OnSetActive:
右击函数的类AddVirtualFunction->选择OnSetActive->AddHandler->EditExisting。
WM_INITDIALOG与WM_CREATE的区别:
WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.在响应WM_CREATE消息响应函数的时候,对话框及子控件还未创建完成,亦是说只是通知系统说要开始创建窗口了,这个消息响应完之后,对话框和子控件才开始创建。
因此在此消息响应函数中无法对控件进行修改和初始化。
而WM_INITDIALOG消息响应函数是在程序运行时,当其对话框和子控件全部创建完毕,将要显示内容的时候发送的消息。
因此可以在WM_INITDIALOG消息响应函数中添加对编辑框控件的初始化和修改。
1.函数的功能:
将属性页对象增加到属性表单当中
函数原型:
C