CreateWindow 创建edit不能使用中文输入的解决办法

CreateWindowEx(NULL,
"EDIT","",
  WS_CHILD|WS_VISIBLE,
10,10,
300,300,
hwnd1,
(HMENU)1001,
hInstance,

NULL);

使用如上代码时,会出现在切换成中文输入法时,无法看到输入法。


解决办法:便是在创建父窗口时,使用WS_CLIPSIBLINGS。

要在自己创建的窗口上运行输入输出,你需要使用图形用户界面库来创建窗口并在其上显示文本。下面是一个简单的示例程序,演示了如何在自己创建的窗口上运行输入输出: ```cpp #include <windows.h> #include <iostream> using namespace std; LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 注册窗口类 WNDCLASS wc = { 0 }; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszClassName = "MyClass"; RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindow("MyClass", "My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, hInstance, NULL); if (hwnd == NULL) { return 0; } // 显示窗口 ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); // 消息循环 MSG msg = { 0 }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CREATE: // 创建编辑框 CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL, 10, 10, 360, 200, hwnd, (HMENU)1, NULL, NULL); // 创建按钮 CreateWindow("BUTTON", "OK", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 170, 220, 60, 30, hwnd, (HMENU)2, NULL, NULL); break; case WM_COMMAND: switch (LOWORD(wParam)) { case 2: // 处理按钮点击事件 char buffer[256]; GetDlgItemText(hwnd, 1, buffer, sizeof(buffer)); cout << buffer << endl; break; } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } ``` 这个程序创建了一个窗口,在窗口中包含一个编辑框和一个按钮。当用户点击按钮时,程序会将编辑框中的文本输出到控制台中。你可以将这个程序作为模板,根据自己的需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值