急非模态对话框+进度条控件(解决立即给分!)解决方法

急!非模态对话框+进度条控件(解决立即给分!)
我想实现一个非模态对话框上动态创建一个进度条,结果进度条总是不显示。求大侠指点。先谢谢了。代码如下:
[code=C/C++][/code]
  CPad_ProgressDlg *pPad_progressDlg = new CPad_ProgressDlg; //CPad_ProgressDlg为一个对话框类,其上创建了一个进度条控件 
pPad_progressDlg->Create(IDD_PAD_PROGRESSDLG);
pPad_progressDlg->CenterWindow();
pPad_progressDlg->ShowWindow(SW_SHOW);
CProgressCtrl *pPadProgressCtrl;
pPadProgressCtrl = new CProgressCtrl;
CRect m_rect;
GetWindowRect(pPad_progressDlg->m_hWnd, &m_rect);
BOOL bRet = pPadProgressCtrl->Create(WS_CHILD | PBS_SMOOTH| WS_EX_TOPMOST, m_rect, 
pPad_progressDlg, IDC_PAD_PROGRESSBAR);
pPadProgressCtrl->SetRange(0, 100);
pPadProgressCtrl->SetPos(0);
while(TRUE)
{
int u = 5;
pPad_progressDlg->pPadProgressCtrl->SetPos(u++);
pPad_progressDlg->pPadProgressCtrl->ShowWindow(SW_SHOW);
pPad_progressDlg->SendMessage(WM_PAINT);
}

------解决方案--------------------
你的pPadProgressCtrl对象Create以后,需要调用
pPadProgressCtrl->ShowWindow(SW_SHOW);
或者Create函数的第一个参数加上WS_VISIBLE属性。
pPadProgressCtrl->Create(WS_CHILD | PBS_SMOOTH| WS_EX_TOPMOST, m_rect,
--》
pPadProgressCtrl->Create(WS_VISIBLE | WS_CHILD | PBS_SMOOTH| WS_EX_TOPMOST, m_rect,
------解决方案--------------------
while(TRUE)进入死循环,且不断发送 (WM_PAINT)消息。
线程估计挂了。把这段去掉试试。

一般建立另一个线程来设置进度条进度。不能在主线程中做死循环。
------解决方案--------------------
GetWindowRect(pPad_progressDlg->m_hWnd, &m_rect);
--》
::GetClienRect(pPad_progressDlg->m_hWnd, &m_rect);

------解决方案--------------------
getwindowrect获取相对于屏幕的坐标;
getclientrect获取相对于客户区坐标
------解决方案--------------------
GetClientRect是获取整个客户区大小,用这个的话你的控件就满窗口了。


------解决方案--------------------
探讨

经测试GetClientRect()在我的程序里依旧不可用,要出现控件只能自定义Rect大小。

------解决方案--------------------
你创建的是局部pPadProgressCtrl,
显示的又是pPad_progressDlg->pPadProgressCtrl

不知道你到底操作的是哪个?
------解决方案--------------------
是啊,代码创建的是 局部pPadProgressCtrl 变量。
循环控制的是 pPad_progressDlg 上的 pPadProgressCtrl;
是否 pPad_progressDlg 上的 pPadProgressCtrl 还没有创建?