1樓:網友
我先說一下你的(b)吧, 首先在中定義全域性變數int count; 並且在和都把它們#include進來的話,由於兩個。cpp都有符號count,在它們分別編譯成和後鏈結器連線會失敗。因為在乙個工程檔案中有兩個目標檔案中存在相同符號且都為全域性作用域的。
乙個解決辦法就是在中定義的int count前加上static關健字。這樣由於全域性變數前加上static屬於限定該變數只能在本檔案中使用。這時和中都有各自獨立的count。
所以不會出現連線錯誤,可是這存在乙個不合理就是它們是各自的變數,屬於本檔案內使用,互不影響 ,這樣假如你想在兩個檔案中都對count變數進行修改,並且也想讓它在另乙個檔案中使用修改後的值就不行了。因為是中有乙個count 而中也有乙個count兩個是獨立的。不影響 。
那麼如何辦到呢。可以使用extern關鍵字,首銜在中定義全域性變數int count;
然後在中宣告count,寫法為 extern int count; 然後在中#include "" 即可。 定義在主檔案中,然後在login檔案中對它進行宣告,這樣就不會出錯了。
而且你在主對話方塊中對值的修改也可以傳遞到login檔案中。
a)的話,我看了一下msdn其中lparam只是乙個dword型別的引數。如果想傳個指標過去未必可行,我到是沒有試過。正常的方式, 就是說 如果它可以傳乙個void*型別的資料的話,那麼當你需要傳遞多個引數時可以通過將這些引數 放在乙個結構體中, 然後把這個結構體的指標傳遞過去了 就可以了。
大概就說這些, 有什麼不懂的 可以 繼續問。
vc++對話方塊之間資料傳遞
2樓:綦文康端華
"結構是主對話方塊(按鈕)->開啟對話方塊1(點按鈕)->開啟對話方塊2"
根據順序,主對話方塊包含對話方塊1的標頭檔案,對話方塊1又包含對話方塊2的標頭檔案,這個是不用懷疑的。至於你說的問題,是想通過對話方塊2裡控制項的輸入傳遞到對話方塊1呢,還是就是單一的要重新整理對話方塊1的資料?
前者可以這樣:在對話方塊2類裡定義成員變數,比如對話方塊2中是個文字框,就可以為其新增成員變數csting
str,這樣在對話方塊關閉時updatedata(false)一下。str就保留了您輸入的資料。然後在對話方塊1類裡處理你需要的操作,對話方塊2的物件為dlg2的話,就用,實現了引數的傳遞。
後者的話就更簡單了,因為是單一的更新資料,不需要對話方塊2任何資料,所以直接在對話方塊1的類中直接操作就可以。比如現實對話方塊2時用的domodal(),那就在domodal()之後直接setwindowstext()或者()setdlgitemtext()或者給combo1直接新增字元等等都行,combo的使用方法在網上搜一下,應該不會出問題的。
其實只要記住乙個點,就是不要企圖在對話方塊2的類**中直接操作對話方塊1,一般都是先把對話方塊2的操作記錄到自己的成員變數(控制項變數不行,因為關閉時都銷燬了),關閉後就可以通過類似dlg2.*獲得相應資料。
vc++的mfc中主對話方塊和子對話方塊怎麼傳遞引數值?
3樓:網友
把主對話方塊變數band和eq和子對話方塊用到的變數設定為public,當主對話方塊要開啟子對話方塊時,把變數band和eq賦給子對話方塊的變數。例如:
在主對話方塊中。
czidialog m_zidialog;
把主對話方塊的變數賦給子對話方塊。
if(m_ == idok)
把子對話方塊的變數賦給主對話方塊。
vc對話方塊裡繪圖, VC 對話方塊裡繪圖
繪圖一般使用picture控制元件,其他static控制元件也可以為了不將圖畫出控制元件,可以這樣做 用雙緩衝繪圖,建立一個和控制元件一樣大小的相容點陣圖就可以了。發給你了,具體請參考 超出範圍得自己判斷,然後根據實際情況來lineto 如果你是指自繪風格的控制元件的話,設定控制元件屬性為owner...
關於VB中通用對話方塊的問題,vb通用對話方塊的問題
看你用了幾個通用對話方塊控制元件,如果是幾個命令按鈕控制一個通用對話方塊控制元件。第一次使用之後。commondialog1.filename 屬性就會記錄下來。然後在你按另存的時候。點取消或是關閉,就會提示出錯。所以在你開啟另存視窗前一定要把 commondialog1.filename 清空。即...
MFC,想在對話方塊裡面呼叫另對話的引數,怎麼辦呀
當然不可以,你沒法獲得對方的成員 你要獲得它執行的例項物件 2個程序的通訊,麻煩點 但是你可以通過hwnd h findwindow 視窗名字 來獲取控制代碼 cwnd w cwnd fromhandler h 然後就可以做了 例如第2個對話方塊的成員為 int a 0 給他夠找一個方法 int g...