我想动态的使一串按钮从左到右的显示,达到流水的效果for(inti=14;i>1;i--){GetDlgItem(array[i])->ShowWindow(true);MessageBox("fdsafds");GetDlgItem(array[i])->ShowWindow(false...
这个问题是这样子的,当你调用GetDlgItem(array[i])->ShowWindow(true);它会调用onpaint函数去进行一次窗口重绘,但是,它并非立即进行重绘,它有可能先处理这个循环体,处理完了,再进行重绘,这样的话,给你的感觉是,控件并没有什么变化……
解决办法:调用UpdateWindow();函数,可以立即重绘窗口。。。。也就是把你的程序改成
for(i
将这些操作放在单独的一个线程里就可以得到你想要的效果了
如果把循环放在主线程里做的话,会阻塞主线程的消息队列,界面不会及时更新,所以没有效果
创建线程可以使用AfxBeginThread,CreateThread,_beginthread。。。方法很多~追问这个具体是什么意思呢?追答起一个线程CreateThread(....,ThreadProc);
线程的call
,TypeA分栏显示,TypeB分栏被隐藏; 之后,根据点选的按钮来隐藏和显示各自的分栏。
首先每一个控件都必须有特定的ID号,所有控件都是,包括静态文本控件,所有ID号都不能一样
在对话框类的OnInitDialog函数中添加如下代码:
CButton* pButton=(CButton*)GetDlgItem(IDC_RADIO1); //假设按钮TypeA的ID
添加定时器消息(WM_TIMER),在OnTimer中处理