c++ - 如何在我的窗口中添加一些文本行?
问题描述
我可以用 Tile 创建一个窗口。现在如何在 Window 中添加新的文本行?
我所做的只是改变了我不想要的窗口标题。我想在窗口框中添加一些文本行。
SendMessage 功能对我不起作用。
如果有人对此有一些提示,请告诉我!
#include <windows.h>
const char g_szClassName[] = "myWindowClass";
//The Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
// Registering the Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"Title of window",
WS_OVERLAPPEDWINDOW,
1390, 540, 240, 120,
NULL, NULL, hInstance, NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
解决方案
要在客户区绘制文本,您wndProc
通常会使用类似DrawText
or的东西TextOut
。您通常会这样做以响应WM_PAINT
.
为了能够回复外部消息,您通常会发送包含文本的消息。窗口将接收它,存储(副本)它收到的文本,并且(通常)使窗口的矩形无效。由于窗口现在已失效,下次有机会时,Windows 将向您的窗口发送一条WM_PAINT
消息(然后您将绘制文本)。
推荐阅读
- java - DeviceDriver connection statement not executing
- javascript - 这个 JavaScript 函数是否具有线性或二次时间复杂度?
- xml - XSLT - 如何存储从源文档中删除的一组元素以供重用
- c# - 如何捕获 1000 个随机整数的最小值和最大值?
- arrays - 按包含字符串的列之一对 Julia 1.1 矩阵进行排序
- python - 确定带宽数据中的“噪声”
- html - 如何正确对齐 div 以适应页面宽度而不会溢出?
- javascript - 有没有更有效的方法从 .onload() 函数中提取 JSON 数据?
- python - 时间序列分类 - ValueError:使用序列设置数组元素
- algorithm - N位整数匹配算法