我在窗口某处区域新建了一个GROUPBOX控件,想在这个GROUPBOX中显示一幅位图,但是运行了之后发现位图不显示,我想是不是因为后建的控件挡住了位图的显示,发现可以用SetWindowPos函数来解决。可是我想问下因为我是直接代码创建的控件,所以说CTRL+D就不会用,就直接用SetWindowPos函数,我想问下怎么使用啊?
pPStatic=new CStatic();
pPStatic->Create("数据图片",WS_CHILD | SS_BITMAP | SS_CENTERIMAGE,CRect(400,30,540,180),this, 1007);
pPStatic->ShowWindow(SW_SHOWNORMAL);
pPButton3=new CButton();
pPButton3->Create("历史数据",WS_CHILD | BS_GROUPBOX,CRect(350,30,1000,210),this, 1003);
pPButton3->ShowWindow(SW_SHOWNORMAL);
我自己代码如下
pPStatic->SetWindowPos(&pPButton3, 0, 0, 0, 0, SWP_NOSISE | SWP_NOMOVE);
但是编译出错了,
请教各位怎么用?
pPStatic=new CStatic();
pPStatic->Create("数据图片",WS_CHILD | SS_BITMAP | SS_CENTERIMAGE,CRect(400,30,540,180),this, 1007);
pPStatic->ShowWindow(SW_SHOWNORMAL);
pPButton3=new CButton();
pPButton3->Create("历史数据",WS_CHILD | BS_GROUPBOX,CRect(350,30,1000,210),this, 1003);
pPButton3->ShowWindow(SW_SHOWNORMAL);
我自己代码如下
pPStatic->SetWindowPos(&pPButton3, 0, 0, 0, 0, SWP_NOSISE | SWP_NOMOVE);
但是编译出错了,
请教各位怎么用?
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags
);
第一个参数就是CWnd*指针
我意思是想要让控件STATIC在控件GROUPBOX上即可。就是B在A的上面显示。请问怎么写代码?
代码编译正确了,但是发现图片没有显示出来,看来不是控件窗口覆盖的问题,那是怎么回事?
代码如下
void CPUMPView::OnBtnP7()
{
//图片控件插入图片
pPStatic->SetBitmap(::LoadBitmap(NULL,MAKEINTRESOURCE(IDB_PUMP_FOUR)) );
//设置窗口的位置A为窗口句柄
pPStatic->SetWindowPos(pPButton3, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
}
这个是按钮的响应函数代码
//添加图片控件
pPStatic=new CStatic();
pPStatic->Create("数据图片",WS_CHILD | SS_BITMAP | SS_CENTERIMAGE,CRect(400,30,540,180),this, 1007);
pPStatic->ShowWindow(SW_SHOWNORMAL);
这个是代码添加了图片控件但是点击按钮之后图片没有显示出来。
-->
CBitmap bmp; // 定义为成员变量bmp.LoadImage(IDB_PUMP_FOUR);// 初始化函数中调用,比如OnInitDialog中pPStatic->SetBitmap(bmp);
好像STATIC我代码添加貌似没有建立类,这个怎么加OnInitDialog函数?我的想法是点击按钮BtnP7就在STATIC控件加载位图。如何实现呢?