progress control, SetRange, SetPos
-
hi,
ich hab einen dialog mit einer progress bar...
den dialog erzeug ich in einer Funktion, die von PostMessage aufgerufen wird, wie kann ich da dann SetRange aufrufen....
ich hab eine control var auf den Dialog (= non modal)...
in der klasse hab ich als member:
Client_FiletransferDlg *m_ptrFiletransferDlg; CProgressCtrl* m_balken;
LRESULT Client_HauptdialogDlg::On_PostMessage_openDlg_Filetr(WPARAM wp, LPARAM lp) { // Filetransfer Dialog erstellen und anzeigen m_ptrFiletransferDlg = new Client_FiletransferDlg(this); m_ptrFiletransferDlg->Create(IDD_CLIENT_Filetransfer_DIALOG); m_ptrFiletransferDlg->ShowWindow(SW_NORMAL); m_balken = (CProgressCtrl*)GetDlgItem(ID_ProgressBar_Transfer); m_balken->SetRange(0, 100); //skalieren auf 0 - 100 }
kann, muss ich das so machen mit GetDlgItem?
cu
-
wenn du die bar im ressourceneditor angelegt hast, ist das eine moeglichkeit.
tuts oder tuts nicht?
gibts jeztzt hier schon threads, wo man sich meldet, wenns mal tut, oder wie?Esco
-
Esco schrieb:
wenn du die bar im ressourceneditor angelegt hast, ist das eine moeglichkeit.
tuts oder tuts nicht?
gibts jeztzt hier schon threads, wo man sich meldet, wenns mal tut, oder wie?Esco
hi, ja hab den dialog mit der progress bar im ressourcen editor erstellt!!!
also ich hab einen thread der sendet dem hauptprog eine PostMessage...damit der Dialog mit der Progressbar erzeugt wird...
also das hier funktiniert nicht:
m_ptrBar = (CProgressCtrl*)GetDlgItem(ID_ProgressBar_Transfer);
m_ptrBar zeigt auf 00000000
die ID_ProgressBar_Transfer stimmt aber...ist die von der Progress bar!
cu
-
Liegt die Progressbar in dem nicht-modalen Dialog?
Wenn ja, dann muss es natürlich so heißen:m_balken = (CProgressCtrl*)ptrFiletransferDlg->GetDlgItem(ID_ProgressBar_Transfer);
-
dEUs schrieb:
Liegt die Progressbar in dem nicht-modalen Dialog?
Wenn ja, dann muss es natürlich so heißen:m_balken = (CProgressCtrl*)ptrFiletransferDlg->GetDlgItem(ID_ProgressBar_Transfer);
ja...;-)
oh das funktioniert nun;-) wie funktioniert GetDlgItem eigentlich das man da einfach das in einen CProgressCtrl Pointer casten kann? GetDlgItem gibt mir ja ein HWND zurück!?Wie kann ich nun am besten SetPos aufrufen....hab mir gedacht immer aus dem Thread eine PostMessage schicken die dann eine Funktion aufruft in der ich dann SetPos mache....oder löst man das üblicherweise mit einem Timer? Wann wird eigentlich die PostMessage immer verarbeitet?
cu+thx
-
CWnd::GetDlgItem gibt ein CWnd* zurück.