2009-08-10 17 views
2

我正在構建一個基於對話框的Windows Mobile應用程序。 我的主容器對話框有一個選項卡控件,它在不同的子對話框之間交替出現(作爲單獨的選項卡)。Win CE/Windows Mobile在MFC中滾動對話框

因爲我有限的顯示器房地產,我需要我的對話框垂直滾動。 以下是一些在線示例,我添加了一個垂直滾動條,以及處理垂直滾動的相應消息和處理程序。

滾動條本身的表現完美,當我點擊它或拖動它時改變它的位置。然而,我的對話框仍然是靜態的,不會滾動。

隔離問題,我修改了滾動消息處理程序和硬編碼的一個滾屏()命令每當渦旋發生,像這樣:

void SettingsDialog::OnVScroll(UINT nSBCode, 
    UINT nPos, CScrollBar* pScrollBar) 
{ 
    ScrollWindow(0,30,NULL,NULL); 
} 

代碼到達,但仍然沒有滾動中出現我的對話。 任何人都可以揭示這個謎?

順便說一句,我已經發現了編碼大師,其中討論了完全相同的問題一個線程,但一直沒有解決在這裏:http://www.codeguru.com/forum/showthread.php?t=54304

回答

3

我經歷了同樣的問題運行。我從來沒有使用MFC,但Win32函數,使其正常工作是這樣的:

  ScrollWindowEx(hDlg, 0, currentPos - si.nPos, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE); 
+0

這解決了我的問題。 我仍然不知道爲什麼常規的ScrollWindow調用失敗,但在這一點上,我不在乎...... :) 謝謝! – LeChuck2k 2009-08-10 17:31:11