RECT lpRect;
m_wndStatusBar.CalcWindowRect(&lpRect,0);lpRect.left = 200;
lpRect.bottom=150;
lpRect.right=600;
m_wndProgressCtrl.MoveWindow(&lpRect,true);
m_wndProgressCtrl.SetForegroundWindow();我的意思是想把Progress进程条放在状态栏的上面,但是Progress看不见了,怎么回事?
m_wndStatusBar.CalcWindowRect(&lpRect,0);lpRect.left = 200;
lpRect.bottom=150;
lpRect.right=600;
m_wndProgressCtrl.MoveWindow(&lpRect,true);
m_wndProgressCtrl.SetForegroundWindow();我的意思是想把Progress进程条放在状态栏的上面,但是Progress看不见了,怎么回事?
解决方案 »
- 求助 CWindowImpl ATL Object Wizard 下载好了,但是不会安装。
- CreatePointFont的问题
- 怎样修改时间字符串
- 急!一个菜鸟的问题!
- 发帖子时总是写上多少分,是不是让我们的关怀变了味道。
- 如何读取SCSI硬盘唯一系列号,解决再开贴送200分!!!
- 哪位大哥知道:installshield里修改一个键值的函数是什么?例如:我要修改[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Ma
- MFC中的CEdit中输入一个字符出现两遍的问题??
- 100分求问,如何运行一个进程,并且知道它已经结束.
- **** 请问大家:提问题没人回答你是怎么想的。什么感想。*************************
- 在网卡驱动上开发应用程序的问题,快来看看!
- 哪里可以找到将UDP/IP数据报中的数据取出得到有序的原始数据的源代码?
ID_INDICATOR_PROGRESS_PANE),让计算机为该ID赋值也许是较好的选择. 2. 在MainFrm.cpp中寻找indicators数组,然后在该数组中加入上面新增加的ID,
请将它放在其它ID的后面,这将使以后的进度条出现在状态行的最右边,如果你
不想 让进度条出现在最右边,你也可以将ID放置在其它你想出现的地方. 3. 打开资源文件中的字符串表,然后插入一个新字符串.你可以通过Insert菜单
来加入一个新字符表,或者在字符串表上单击右键也可以完成该工作. 4. 该字符串的字符为新增的ID,后面的消息,请加入适当的空格.(加入的空格
至少要比建立的进度条要大) 现在我们已经建立了一个空的长方形,接下来我们要在这里面放入一个进度条. 1. 在MainFrm.h中声明一个公共变量,类型为CProgressCtrl(假设为m_progress) 2. 在MainFrm.h中声明一个保护变量,类型为BOOL(假设为m_bCreated) 3. 在MainFrm.cpp的OnCreate()函数中,将m_bCreated初始化为FALSE: m_bCreated = FALSE;4. 现在当我们需要使用进度条时,我们先检查一下是否已经建立,如果还没有,
那么 我们需要建立一个: CMainFrame::OnSomeLongProcess()
{
RECT MyRect;
// substitute 4 with the zero-based index of your status bar pane.
// For example, if you put your pane first in the indicators array,
// you抎 put 0, second you抎 put 1, etc.
m_wndStatusBar.GetItemRect(4, &MyRect); if (m_bCreated == FALSE)
{
//Create the progress control
m_Progress.Create(WS_VISIBLE|WS_CHILD, MyRect, &wndStatusBar, 1); m_Progress.SetRange(0,100); //Set the range to between 0 and 100
m_Progress.SetStep(1); // Set the step amount
m_bCreated = TRUE;
}// Now we抣l simulate a long process:
for (int I = 0; I <100; I++) { Sleep(20); m_Progress.StepIt(); } }
如果窗口在建立进度条之后,改变了大小,那么进度条并不会被重新调整位置,所
以 我们必须在WM_SIZE事件中加入自己的代码来调整该进度条的位置: void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIFrameWnd::OnSize(nType, cx, cy);
RECT rc;
m_wndStatusBar.GetItemRect(4, &rc);// Reposition the progress control correctly!
m_Progress.SetWindowPos(&wndTop, rc.left, rc.top, rc.right - rc.left,
rc.bottom - rc.top, 0); }
{
CMDIFrameWnd::OnSize(nType, cx, cy);
if (m_bCreated)
{
RECT rc;
m_wndStatusBar.GetItemRect(4, &rc);
m_Progress.SetWindowPos(&wndTop, rc.left, rc.top, rc.right - rc.left,
rc.bottom - rc.top, 0);
}
}