这里有个例子,关于Edit控件的,先理解一下结构带函数的方法:
#include <windows.h>
//别名
typedef struct ctl_edit *cEdit;
//函数指针
typedef void(*p1)(void);
typedef void(*p2)(cEdit);
typedef struct ctl_edit
{
HWND hwnd;
p2 copy;
p2 cut;
p2 paste;
p2 clear;
}Edit;
void
edit_init(cEdit _edit);
void
edit_do_copy(cEdit _edit);
void
edit_do_cut(cEdit _edit);
void
edit_do_paste(cEdit _edit);
void
edit_do_clear(cEdit _edit);
void edit_init(cEdit _edit)
{
_edit->copy
= edit_do_copy;
_edit->cut
= edit_do_cut;
_edit->paste
= edit_do_paste;
_edit->clear
= edit_do_clear;
}
void edit_create(cEdit _edit)
{
int _style = WS_CHILD | WS_VISIBLE;
_edit->hwnd = CreateWindowEx(dwExStyle,
_T("Edit"),
"",
_style | style,
0, 0, 0, 0,
hwndParent,
(HMENU) ctl_id,
hInstance,
0);
if(_edit->hwnd)
edit_init(_edit);
}
void edit_do_copy(cEdit _edit)
{
SendMessage(_edit->hwnd, WM_COPY, 0, 0);
}
void edit_do_cut(cEdit _edit)
{
SendMessage(_edit->hwnd, WM_CUT, 0, 0);
}
void edit_do_paste(cEdit _edit)
{
SendMessage(_edit->hwnd, WM_PASTE, 0, 0);
}
void edit_do_clear(cEdit _edit)
{
SendMessage(_edit->hwnd, WM_CLEAR, 0, 0);
}