2012/02/04

[vc]warning C4091

小弟在.h裡宣告了一個struct,寫法如下:

typedef struct _student
{
        int chinese;
        int english;
        int math;
        int total;
};

編譯時出現C4091的警告-->ignored on left of 'struct ' when no variable is declared
正確寫法:
typedef struct _student
{
        int chinese;
        int english;
        int math;
        int total;
}_Student_Score;

宣告時:
_Student_Score John,Mary;

或者是另一種寫法:
struct _student
{
        int chinese;
        int english;
        int math;
        int total;
};

宣告時:
_student John,Mary;

以上!

2012/02/03

[MFC] UpdateData

當我們在Dialog上create一個 editbox,並替此物件關聯一個type為CString的成員變數m_strEdit1,
則當你想要m_strEdit1的內容變更後顯示在Dialog上,你應該這樣寫:


m_strEdit1 ="1234";
UpdateData(FALSE);


反之,當你要取得畫面上editbox的內容時,就變成這樣寫:

UpdateData(TRUE);
        //m_strEdit這時就會變成字串"5678",再來的程式就看你要拿5678去幹麼隨便你用....

2012/02/02

[VC] Dialog Redraw

小弟今天在開發時遇到一個問題,狀況描述如下:

主Dialog內有個Static Text,此Static Text用來作為顯示網路串流畫面的物件,
剛開始播放時,畫面顯示皆沒問題,可是只要一遇到播放視窗被其他視窗蓋過後,就會看不到畫面!(如圖)
一開始一直以為是Dialog的redraw有問題,後來網路上找了一下才知道,是Dialog本身的設定要調整。
設定方式:請將dialog的Properties->Styles->Clip children屬性勾選啟動。
因為Dialog是父窗口,當這個屬性未勾選前,父窗口會負責重畫所有物件的畫面,
但是這個屬性勾選後,父窗口不會替子窗口重畫,所以子窗口就能一直顯示串流畫面了!

ref: Vitas的BlogVC對話框小知識