BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
动态创建一个按纽
LPCTSTR lpszCaption 按纽文字
DWORD dwStyle 按纽样式,常选用BS_DEFPUSHBUTTON表示下压式按纽,
控件本身也是窗口,因此还具有窗口类型,如让控件创建后即可见,可给控件WS_VISIBLE,
通常还具有WS_CHILD属性
const RECT& rect 矩形区域,可以是CRect类型,也可是Rect结构体。可直接由CRect构造,如CRect (0,0,10,10).。
CWnd* pParentWnd 为父窗口指针,若消息响应在父类中,可直接用this指针。UINT nID 可随便给(只能为数字?)。
注意用此函数时需判断该控件是否已与该控件窗口已关联,因为若关联两次会出现错误,动态创建控件好象只能创建一个控件。
CWnd* GetDlgItem( int nID ) const;
用此函数可通过控件ID获得指定控件的指针,一般此函数用于一个对话框类中。
int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;
void GetWindowText( CString& rString ) const;
此函数可获得指定控件上的文本信息并把它保存在一个CString对象或char型数组中。
第一个重载函数中nMaxCount指能够复制到BUFFER中的最大字符数
void SetWindowText( LPCTSTR lpszString );
该函数用于设置窗体尤其是控件文本。(该函数是否可向窗口输出字符串?)
atoi
int atoi( const char *string );
该函数可将字符串转换为整形值并返回。
类似的函数如下:
long atol( const char *string );
double atof( const char *string );
如果字符不能转化为相应的类型则返回0
itoa
char *_itoa( int value, char *string, int radix );
第一个参数是要转换的整形值,第二个参数是目标字符串的指针,第三个参数代表进制。
(回值干什么用的?)
int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;
int GetDlgItemText( int nID, CString& rString ) const;
该函数可通过控件ID来获取控件文本并把它保存在CString 的一个对象中或char型数组中,因为数组会有最大字符数,因此第一个重载函数还有nMaxCount参数。
void SetDlgItemText( int nID, LPCTSTR lpszString );
将字符串中字符放回nID所指定的控件中
UINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const;
该函数作用是接收指定控件文本并作为整形数返回
nID为控件ID,第二个参数若为NULL则若字符无法转换为数字时会接受一个零而不会报错,第三个参数若为TRUE则检查文本开始处的有无符号,即数据做有符号数处理,若为FALSE则作无符号数处理。
void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE );
该函数是将整形值直接传入ID标识的控件作为控件文本。
nID为控件ID,第二个参数为要传入的整形值,第三个参数为真则为有符号值,反之则为无符号值
BOOL ShowWindow( int nCmdShow );
常用nCmdShow的参数值
一般由窗口类或窗口类的派生类产生一个窗口后都需要调用该函数将窗口显示出来,不过有时不需要显式调用而有时必须显示调用
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
可用于各窗体或控件之间的消息通信。
wParam
未被使用,设为0 ,lParam 为要设置的文本的存储单元地址;
EM_SETSEL
wParam = (WPARAM) (INT) nStart; // starting position
lParam = (LPARAM) (INT) nEnd; // ending position
获取编辑框文本复选的消息为 EM_GETSEL
wParam = (WPARAM) (LPDWORD) lpdwStart; // receives starting position
lParam = (LPARAM) (LPDWORD) lpdwEnd; // receives ending position
wParam
为一个DWORD类型数的指针,用于保存起始位置,lParam也为一个DWORD类型数的指针,用于保存结束位置。
LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
virtual BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount );
BOOL TextOut( int x, int y, const CString& str );
该函数可用于向指定窗口输出一串文字,输出成功则返回非0;
virtual COLORREF SetTextColor( COLORREF crColor );
virtual COLORREF SetBkColor( COLORREF crColor );
指定。
SDK下该函数为:
BOOL TextOut(
HDC
hdc
,
// handle to device context
int
nXStart
,
// x-coordinate of starting position
int
nYStart
,
// y-coordinate of starting position
LPCTSTR
lpString
,
// pointer to string
int cbString // number of characters in string
);
CWnd* SetFocus( );
该函数为设置鼠标焦点的函数,返回的是原先具有焦点的窗体指针。
void GetWindowRect( LPRECT lpRect ) const;
该函数获得窗口矩形区域信息并将信息保存在CRect或Rect结构体中
BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
该函数可用于设置窗口的大小以及窗口的层叠次序。
第二,三个参数为窗口的左上角的x与y值,第四个参数为窗口的宽度,第五个参数为窗口的高度,最后一个参数为设置显示属性,如若要窗口显示位置不改变,nFlags可设置为 SWP_NOMOVE ,此时将忽略x与y值,
SetWindowLong
LONG SetWindowLong(
HWND hWnd, // handle of window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);
API函数,可用于改变指定窗口的一个属性,当nIndex取GWL_WNDPROC,
可用于替换一个窗口过程。
GetNextWindow
HWND GetNextWindow(
HWND
hWnd
,
// handle to current window
UINT
wCmd
// direction flag
);
SDK函数,可获取当前控件的下一个控件的句柄,其中第一个参数为当前控件的句柄,第二个参数可取GW_HWNDNEXT或GW_HWNDPREV,若取GW_HWNDNEXT则获取下一个控件句柄,若取GW_HWNDPREV则获取当前句柄的前一个控件句柄
GetWindow
HWND GetWindow(
HWND
hWnd
,
// handle to original window
UINT
uCmd
// relationship flag
);
该函数功能与GetNextWindow相似,但功能比GetNextWindow更强大,其中的nCmd选项可选
GW_HWNDNEXT与GW_HWNDPREV外还可选择:
HWND GetNextDlgTabItem(
HWND
hDlg
,
// handle of dialog box
HWND
hCtl
,
// handle of known control
BOOL
bPrevious
// direction flag
);
CWnd* GetNextWindow( UINT nFlag = GW_HWNDNEXT ) const;
此函数返回指向当前控件的下一个控件的指针。
BOOL ModifyStyle(DWORD dwRemove,DWORD dwAdd, UINT nFlags = 0 );
此函数用于替换指定窗口的样式,第一个参数DWORD dwRemove,为要去掉的窗口样式,第二个参数DWORD dwAdd为将要添加的窗口样式,第三个参数为0则窗口不重绘,非0则窗口重绘。
LPTSTR MAKEINTRESOURCE(
WORD
wInteger
// integer to convert
);
该函数可以将一个整形值转换为一个资源类型的值,一般用于将一个资源的ID标示转换为资源的名字的字符串
封装所有字符串操作的类CString类,常用方法:
CString::Format:格式化输出一个字符串用法与c语言中Printf()相类似
CString::operator +=:可以连接一个字符串
DWORD GetCurrentDirectory(
DWORD
nBufferLength
,
// size, in characters, of directory buffer
LPTSTR
lpBuffer
// pointer to buffer for current directory
);
该函数为SDK平台下的函数,作用是获取当前目录下所有文件名,并将当前目录下所有文件的文件名放入lpBuffer
指向的字符数组中。