中国建设网官方网站狗年纪念币,网站图片一般分辨率做多大,手机网站合同,网站制作用什么编程公开视频 - 链接点击跳转公开课程博客首页 - 链接点击跳转博客主页 目录
编辑框(edit)
控件样式
创建控件
初始控件
消息处理
示例代码 编辑框(edit)
控件样式 编辑框#xff08;Edit Control#xff09;是Windows中最常用的控件之一#xff0c;用于接收用户…公开视频 - 链接点击跳转公开课程博客首页 - 链接点击跳转博客主页 目录
编辑框(edit)
控件样式
创建控件
初始控件
消息处理
示例代码 编辑框(edit)
控件样式 编辑框Edit Control是Windows中最常用的控件之一用于接收用户输入的文本信息。编辑框可以设置为单行或多行支持多种文本格式和输入限制。风格样式 WS_CHILD子窗口样式。WS_VISIBLE控件创建时可见。WS_BORDER控件周围有边框。WS_TABSTOP用户可以使用Tab键切换到此控件。控件样式 ES_AUTOHSCROLL当用户输入超过控件宽度时文本自动向左滚动。ES_MULTILINE多行编辑框。ES_WANTRETURN在多行编辑框中用户按下Enter键时插入一个换行符而不是发送 WM_COMMAND 消息。
创建控件
使用 CreateWindow 或 CreateWindowEx 函数创建编辑框控件。需要指定控件类名为 EDIT并设置相应的窗口样式。
初始控件
设置和获取文本 WM_SETTEXT设置编辑框的文本。WM_GETTEXT获取编辑框的文本。WM_GETTEXTLENGTH获取编辑框文本的长度。控制编辑框行为 EM_SETREADONLY设置编辑框为只读模式。EM_SETSEL选择编辑框中的文本。EM_REPLACESEL替换选定的文本。EM_GETSEL获取当前选定的文本范围。
消息处理
通知消息 EN_CHANGE编辑框内容发生改变。EN_UPDATE编辑框将要更新显示。EN_SETFOCUS编辑框获得输入焦点。EN_KILLFOCUS编辑框失去输入焦点。
示例代码
#include Windows.h
#include resource.h#define ID_EDIT_SINGLELINE 1
#define ID_EDIT_MULTILINE 2
#define ID_EDIT_PASSWORD 3
#define ID_EDIT_READONLY 4HINSTANCE ghInstance 0;LRESULT CALLBACK MainWindowProc (HWND, UINT, WPARAM, LPARAM);INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{ghInstance hInstance;// 注册窗口WNDCLASSEX wndclass { 0 };wndclass.cbSize sizeof(WNDCLASSEX);wndclass.style NULL;wndclass.lpfnWndProc MainWindowProc;wndclass.cbClsExtra NULL;wndclass.cbWndExtra NULL;wndclass.hInstance hInstance;wndclass.hIcon NULL;wndclass.hCursor NULL;wndclass.hbrBackground (HBRUSH)COLOR_WINDOW;wndclass.lpszMenuName NULL;wndclass.lpszClassName TEXT(0xCC);wndclass.hIconSm NULL;if (!RegisterClassEx(wndclass)){MessageBox(NULL, TEXT(RegisterClassEx Failed), TEXT(Error), MB_OK);return 1;}// 创建窗口HWND hwnd CreateWindowEx(WS_EX_CLIENTEDGE,TEXT(0xCC),TEXT(CreateWindowEx),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,960,540,NULL,NULL,hInstance,NULL);if (hwnd NULL){MessageBox(NULL, TEXT(CreateWindowEx Failed), TEXT(Error), MB_OK);return 1;}// 显示窗口ShowWindow(hwnd, SW_SHOWDEFAULT);// 更新窗口UpdateWindow(hwnd);// 消息处理MSG msg { 0 };while (GetMessage(msg, 0, 0, 0)){TranslateMessage(msg);DispatchMessage(msg);}return 0;
}// 窗口过程
LRESULT CALLBACK MainWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{static HWND hEditLine, hMultiple, hPassWord, hReadOnly;switch (uMsg){case WM_CREATE:{//创建控件hEditLine CreateWindow(TEXT(EDIT),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,10, 10, 200, 25,hwnd,HMENU(ID_EDIT_SINGLELINE),ghInstance,NULL);hMultiple CreateWindow(TEXT(EDIT),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,10, 50, 200, 100,hwnd,HMENU(ID_EDIT_MULTILINE),ghInstance,NULL);hPassWord CreateWindow(TEXT(EDIT),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_PASSWORD,10, 165, 200, 25,hwnd,HMENU(ID_EDIT_PASSWORD),ghInstance,NULL);hReadOnly CreateWindow(TEXT(EDIT),TEXT(ES_READONLY),WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_READONLY,10, 205, 200, 25,hwnd,HMENU(ID_EDIT_READONLY),ghInstance,NULL);// 初始控件// 设置文本//SendMessage(hEditLine, WM_SETTEXT, 0, (LPARAM)TEXT(Hello World));// 获取文件//TCHAR szBuffer[0xFF] { 0 };//SendMessage(hEditLine, WM_GETTEXT, 0xFF, (LPARAM)szBuffer);// 获取长度//DWORD dwLength SendMessage(hEditLine, WM_GETTEXTLENGTH, 0, 0);// 设置风格SendMessage(hEditLine, EM_SETREADONLY, TRUE, 0);break;}case WM_DESTROY:{PostQuitMessage(0);break;}case WM_COMMAND:{switch (HIWORD(wParam)){case EN_CHANGE:{if (LOWORD(wParam) ID_EDIT_SINGLELINE){TCHAR szBuffer[0xFF] { 0 };SendMessage(hEditLine, WM_GETTEXT, 0xFF, (LPARAM)szBuffer);}}//case EN_SETFOCUS://{// if (LOWORD(wParam) ID_EDIT_MULTILINE)// {// MessageBox(0, TEXT(EN_SETFOCUS), 0, 0);// }// break;//}case EN_KILLFOCUS:{if (LOWORD(wParam) ID_EDIT_MULTILINE){MessageBox(0, TEXT(EN_KILLFOCUS), 0, 0);}break;}break;}}default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}}