【发布时间】:2017-07-25 16:40:36
【问题描述】:
我正在尝试在控件周围绘制一个矩形圆端,我做了这样的事情:
LRESULT CALLBACK WindPorc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
case WM_CTLCOLOREDIT:
{
// device handle
HDC Chdc = (HDC)wparam;
// handle to control
HWND CHand = (HWND)lparam;
// new object pen...
HPEN penx = CreatePen(PS_SOLID, 5, RGB(0, 255, 255));
// apply pen to device handle and back up the original handle
HGDIOBJ objb = SelectObject(Chdc, penx);
// auto...
RECT rectx;
GetClientRect(CHand, &rectx);
// Now draw the rect with round borders...
RoundRect(Chdc, (rectx.left -2), (rectx.top - 2), (rectx.right + 2), (rectx.bottom + 2), 5, 5);
// reset device hand...
SelectObject(Chdc, objb);
// Set text color...
SetTextColor(Chdc, RGB(0, 255, 255));
// clean up...
DeleteObject(penx);
DeleteObject(objb);
// I should return a brush for the bk, but this don't care now...
//return;
}
}
void InitUI()
{
// just the edit control, isn't need the RegisterClass etc...
HWND Edit1 = CreateWindowEx
(
NULL,
L"EDIT",
NULL,
WS_CHILD | WS_VISIBLE |
ES_LEFT | ES_MULTILINE, // Just a demonstration, it should be ES_PASSWORD
10, 120, 200, 22,
winx, // parent window HWND...
(HMENU)TEXTBOX_1, // id
(HINSTANCE)GetWindowLong(winx, GWL_HINSTANCE),
NULL
);
}
好的,看起来像这样:
但如果我将CreateWindowEx(); 上的样式更改为ES_PASSWORD,边缘就会消失,留下如下内容:
他们为什么会消失?
【问题讨论】:
标签: c++ visual-c++ gdi+ gdi