在WTL中,用画刷的方式给众多子窗口(空的)上背景颜色代码如下
CRect rect;
GetWindowRect(&rect);
CPaintDC pdc(m_hWnd);
CBrush brush=CreateSolidBrush(RGB(200,100,100));
CBrush oldbrush=pdc.SelectBrush(brush);
pdc.FillRect(&rect,brush);
pdc.SelectBrush(oldbrush);但是显示的却是一条线???求教啊
CRect rect;
GetWindowRect(&rect);
CPaintDC pdc(m_hWnd);
CBrush brush=CreateSolidBrush(RGB(200,100,100));
CBrush oldbrush=pdc.SelectBrush(brush);
pdc.FillRect(&rect,brush);
pdc.SelectBrush(oldbrush);但是显示的却是一条线???求教啊
你的指定指向子窗口
在父窗口的WM_CREATE的响应函数OnCreate创建所有的子窗口,然后一个个移动(MoveWindow),每移动一个就调用上面的函数,尺寸没问题的
{
CRect rect;
GetWindowRect(&rect);
switch(nID)
{
case ID_VIDEO_1:
{
int width=rect.Width();
int hight=rect.Height(); m_childvideo[0].MoveWindow(0,0,width,hight,true);
Paintgd();
m_childvideo[0].ShowWindow(SW_SHOW);
}
break;
case ID_VIDEO_4:
{
int width=(rect.Width()-m_udiv)/2;
int hight=(rect.Height()-m_udiv)/2;
for(int i=0;i<4;i++)
{
if(i<2)
{
m_childvideo[i].MoveWindow(i*(width+m_udiv),0,width,hight,true);
}
else
{
m_childvideo[i].MoveWindow((i-2)*(width+m_udiv),(hight+m_udiv),width,hight,true);
}
m_childvideo[i].ShowWindow(SW_SHOW);
Paintgd();
}
}
break;
Paintgd();内的代码是
CRect rect;
GetWindowRect(&rect);
CPaintDC pdc(m_hWnd);
CBrush brush=CreateSolidBrush(RGB(200,100,100));
CBrush oldbrush=pdc.SelectBrush(brush);
pdc.FillRect(&rect,brush);
pdc.SelectBrush(oldbrush);