您的位置:首页 > 其它

MFC常用函数整理

2010-03-11 18:41 357 查看

CButton::Create

BOOLCreate(LPCTSTRlpszCaption,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);

动态创建一个按纽

LPCTSTRlpszCaption按纽文字

DWORDdwStyle按纽样式,常选用BS_DEFPUSHBUTTON表示下压式按纽,

控件本身也是窗口,因此还具有窗口类型,如让控件创建后即可见,可给控件WS_VISIBLE,

通常还具有WS_CHILD属性

constRECT&rect矩形区域,可以是CRect类型,也可是Rect结构体。可直接由CRect构造,如CRect(0,0,10,10).。

CWnd*pParentWnd为父窗口指针,若消息响应在父类中,可直接用this指针。UINTnID可随便给(只能为数字?)。

注意用此函数时需判断该控件是否已与该控件窗口已关联,因为若关联两次会出现错误,动态创建控件好象只能创建一个控件。

CWnd::GetDlgItem

CWnd*GetDlgItem(intnID)const;

用此函数可通过控件ID获得指定控件的指针,一般此函数用于一个对话框类中。

CWnd::GetWindowText

intGetWindowText(LPTSTRlpszStringBuf,intnMaxCount)const;

voidGetWindowText(CString&rString)const;

此函数可获得指定控件上的文本信息并把它保存在一个CString对象或char型数组中。

第一个重载函数中nMaxCount指能够复制到BUFFER中的最大字符数

CWnd::SetWindowText

voidSetWindowText(LPCTSTRlpszString);

该函数用于设置窗体尤其是控件文本。(该函数是否可向窗口输出字符串?)

atoi

intatoi(constchar*string);

该函数可将字符串转换为整形值并返回。

类似的函数如下:

longatol(constchar*string);

doubleatof(constchar*string);

如果字符不能转化为相应的类型则返回0

itoa

char*_itoa(intvalue,char*string,intradix);

第一个参数是要转换的整形值,第二个参数是目标字符串的指针,第三个参数代表进制。

(回值干什么用的?)

CWnd::GetDlgItemText

intGetDlgItemText(intnID,LPTSTRlpStr,intnMaxCount)const;

intGetDlgItemText(intnID,CString&rString)const;

该函数可通过控件ID来获取控件文本并把它保存在CString的一个对象中或char型数组中,因为数组会有最大字符数,因此第一个重载函数还有nMaxCount参数。

CWnd::SetDlgItemText

voidSetDlgItemText(intnID,LPCTSTRlpszString);

将字符串中字符放回nID所指定的控件中

CWnd::GetDlgItemInt

UINTGetDlgItemInt(intnID,BOOL*lpTrans=NULL,BOOLbSigned=TRUE)const;

该函数作用是接收指定控件文本并作为整形数返回

nID为控件ID,第二个参数若为NULL则若字符无法转换为数字时会接受一个零而不会报错,第三个参数若为TRUE则检查文本开始处的有无符号,即数据做有符号数处理,若为FALSE则作无符号数处理。

CWnd::SetDlgItemInt

voidSetDlgItemInt(intnID,UINTnValue,BOOLbSigned=TRUE);

该函数是将整形值直接传入ID标识的控件作为控件文本。

nID为控件ID,第二个参数为要传入的整形值,第三个参数为真则为有符号值,反之则为无符号值

CWnd::ShowWindow

BOOLShowWindow(intnCmdShow);

常用nCmdShow的参数值

SW_HIDE隐藏窗口或控件

SW_SHOW正常显示窗口或控件

一般由窗口类或窗口类的派生类产生一个窗口后都需要调用该函数将窗口显示出来,不过有时不需要显式调用而有时必须显示调用

CWnd::PostMessage

BOOLPostMessage(UINTmessage,WPARAMwParam=0,LPARAMlParam=0);

CWnd::SendMessage

LRESULTSendMessage(UINTmessage,WPARAMwParam=0,LPARAMlParam=0);

可用于各窗体或控件之间的消息通信。

如常用的获取窗体或控件的文本消息WM_GETTEXT,用WM_GETTEXT时参数:

WPARAM为要copy的最大字符数,LPARAM为存储的buffer区,若为char型数组则需要强制类型转换

设置窗体文本的消息WM_SETTEXT,参数含义:

wParam
未被使用,设为0,lParam为要设置的文本的存储单元地址;
[/code]

设置编辑框文本复选的消息为EM_SETSEL

EM_SETSEL

wParam=(WPARAM)(INT)nStart;//startingposition

lParam=(LPARAM)(INT)nEnd;//endingposition

wParam为复选起始位置,lParam为复选结束位置。注意,若最后鼠标焦点不在编辑框上则无法显示文本复选,因此一般最后会加上一个SetFocus函数。

获取编辑框文本复选的消息为[code]EM_GETSEL
[/code]
wParam=(WPARAM)(LPDWORD)lpdwStart;//receivesstartingposition
[/code]
lParam=(LPARAM)(LPDWORD)lpdwEnd;//receivesendingposition
[/code]
wParam
为一个DWORD类型数的指针,用于保存起始位置,lParam也为一个DWORD类型数的指针,用于保存结束位置。




CWnd::SendDlgItemMessage

LRESULTSendDlgItemMessage(intnID,UINTmessage,WPARAMwParam=0,LPARAMlParam=0);

本函数用于对话框各控件的消息通信,获取指定ID的消息,该函数不是被类的对象调用的。

CDC::TextOut

virtualBOOLTextOut(intx,inty,LPCTSTRlpszString,intnCount);

BOOLTextOut(intx,inty,constCString&str);

该函数可用于向指定窗口输出一串文字,输出成功则返回非0;

输出文本颜色不是由画笔控制的,而是由CD中的成员函数

CDC::SetTextColor

virtualCOLORREFSetTextColor(COLORREFcrColor);

指定。背景颜色由

CDC::SetBkColor

virtualCOLORREFSetBkColor(COLORREFcrColor);

指定。

SDK下该函数为:

BOOLTextOut(
[/code]
HDC
hdc
,
//handletodevicecontext
[/code]
int
nXStart
,
//x-coordinateofstartingposition
[/code]
int
nYStart
,
//y-coordinateofstartingposition
[/code]
LPCTSTR
lpString
,
//pointertostring
[/code]
intcbString//numberofcharactersinstring
[/code]
);
[/code]
[/code]

CWnd::SetFocus

CWnd*SetFocus();

该函数为设置鼠标焦点的函数,返回的是原先具有焦点的窗体指针。

CWnd::GetWindowRect

voidGetWindowRect(LPRECTlpRect)const;

该函数获得窗口矩形区域信息并将信息保存在CRect或Rect结构体中

CWnd::SetWindowPos

BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);

该函数可用于设置窗口的大小以及窗口的层叠次序。

第二,三个参数为窗口的左上角的x与y值,第四个参数为窗口的宽度,第五个参数为窗口的高度,最后一个参数为设置显示属性,如若要窗口显示位置不改变,nFlags可设置为SWP_NOMOVE,此时将忽略x与y值,

SetWindowLong

LONGSetWindowLong(

HWNDhWnd,//handleofwindow

intnIndex,//offsetofvaluetoset

LONGdwNewLong//newvalue

);

API函数,可用于改变指定窗口的一个属性,当nIndex取GWL_WNDPROC,

可用于替换一个窗口过程。

GetNextWindow


HWNDGetNextWindow(
[/code]
HWND
hWnd
,
//handletocurrentwindow
[/code]
UINT
wCmd
//directionflag
[/code]
);
[/code]
SDK函数,可获取当前控件的下一个控件的句柄,其中第一个参数为当前控件的句柄,第二个参数可取GW_HWNDNEXT或GW_HWNDPREV,若取GW_HWNDNEXT则获取下一个控件句柄,若取GW_HWNDPREV则获取当前句柄的前一个控件句柄


GetWindow
[/code]
HWNDGetWindow(
[/code]
HWND
hWnd
,
//handletooriginalwindow
[/code]
UINT
uCmd
//relationshipflag
[/code]
);
[/code]
该函数功能与GetNextWindow相似,但功能比GetNextWindow更强大,其中的nCmd选项可选
GW_HWNDNEXT与GW_HWNDPREV外还可选择:[/code]

GW_CHILD表示获取当前控件子控件句柄,GW_HWNDFIRST与GW_HWNDLASTfenbie分别表示获取第一个与最后一个控件句柄。

GetNextDlgTabItem

HWNDGetNextDlgTabItem(
[/code]
HWND
hDlg
,
//handleofdialogbox
[/code]
HWND
hCtl
,
//handleofknowncontrol
[/code]
BOOL
bPrevious
//directionflag
[/code]
);
[/code]

CWnd::GetNextWindow

CWnd*GetNextWindow(UINTnFlag=GW_HWNDNEXT)const;

此函数返回指向当前控件的下一个控件的指针。

CWnd::ModifyStyle

BOOLModifyStyle(DWORDdwRemove,DWORDdwAdd,UINTnFlags=0);

此函数用于替换指定窗口的样式,第一个参数DWORDdwRemove,为要去掉的窗口样式,第二个参数DWORDdwAdd为将要添加的窗口样式,第三个参数为0则窗口不重绘,非0则窗口重绘。

LPTSTRMAKEINTRESOURCE(
[/code]
WORD
wInteger
//integertoconvert
[/code]
);
[/code]
该函数可以将一个整形值转换为一个资源类型的值,一般用于将一个资源的ID标示转换为资源的名字的字符串

封装所有字符串操作的类CString类,常用方法:

CString::Format:格式化输出一个字符串用法与c语言中Printf()相类似

CString::operator+=:可以连接一个字符串

[/code]
DWORDGetCurrentDirectory(
[/code]
DWORD
nBufferLength
,
//size,incharacters,ofdirectorybuffer
[/code]
LPTSTR
lpBuffer
//pointertobufferforcurrentdirectory
[/code]
);
[/code]
该函数为SDK平台下的函数,作用是获取当前目录下所有文件名,并将当前目录下所有文件的文件名放入
lpBuffer
指向的字符数组中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: