如何用 Parent handle 重新設定 Parent 的底色? |
尚未結案
|
kung
一般會員 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
|
kung
一般會員 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
引言: GetParentComponent 取得Parent元件後再設顏色。 為什麼要繞一大圈設顏色阿 >>< face="Verdana, Arial, Helvetica"> 謝謝你幫我開了一扇窗,讓我繼續這個topic..thanks... 以下是我原先想做出的功能: 1_ 我在Form1上有一個按鈕(Button1),以及Panel1,Panel2,ToolBar1,ToolBar2, 2_ 然後在Button1的Button1Click event 寫入--新增一個按鈕(bt01),但新按鈕(bt01)隨機在Form1上不同的可視元件建立(如Form1,Panel1,Panel2,ToolBar1,ToolBar2..), 而這按鈕(bt01)的上層元件(Parent)若有Color屬性,按下新按鈕(bt01)時,則重新設定上層元件(Parent)的色彩屬性為紅色。 3_ 而這按鈕(bt01)的OnClick函式,我想用『動態』方式解決Parent的Color屬性設定問題。 其實...若用列舉方式也可以解決,但實在是"太不優雅"了.......< >< > 所以才向各位高手求援....... |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: SetBkColor( HDC hdc, // handle of device context COLORREF crColor // background color value );抱歉, 我試不出來耶... 是哪裡錯了嗎? 煩請cmf 指導, 謝謝 !! HWND hdParent = ::GetParent(Button1->Handle); HDC hdc = GetDC(hdParent); SetBkColor(hdc,0xffffff);數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D |
kung
一般會員 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
引言: SetBkColor( HDC hdc, // handle of device context COLORREF crColor // background color value );cmf, sorry... 小弟用全新的一個Form與Button,測試Form1的底色更改, 但...Form1怎麼沒動靜?< >< > 能否再指點一下? THANKS....... //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { COLORREF cl = RGB(30,10,50); ::SetBkColor( ::GetDC(Handle), cl); } //--------------------------------------------------------------------------- |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: void __fastcall TForm1::Button1Click(TObject *Sender) { TPanel* P=dynamic_castParent是一個可視的元件(如TPanel、TForm、....等), 如果是強制轉型的話... 請問要如何知道Parent的type 呢(如TPanel、TForm、....等) ? 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: 我是初學者 若有錯誤 請見諒 bool __fastcall ClassNameIs(const AnsiString string){ return ClassNameIs(ClassType(), string); }成了!! cmf兄謙虛了。 感謝cmf的指導。< > (如果 >) 有些漏掉的地方我補起來了。< > < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { String str= Button1->Parent->Name; if(Button1->Parent->ClassNameIs("TForm1")) // 這裡用的是TForm延伸Type--TForm1 { TForm* P = dynamic_cast |
kung
一般會員 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
引言:先感謝五星上將cmf兄的支援, 雖然後學覺得這個蠻有意思的『動態、強制轉型』,仍有相當大的處理空間, 還是先將此題得分結案吧,得分給實戰功力強、探討問題深入的anpino兄。 BUT...還是請cmf兄、anpino兄與各位前輩繼續指導後學此題..... anpino兄的code,看來仍逃不了"列舉"方式,處理"隨機"的Parent;"列舉"--這是題目最後底限了..... 發表人 - kung 於 2003/12/09 14:20:16void __fastcall TForm1::Button1Click(TObject *Sender) { String str= Button1->Parent->Name; if(Button1->Parent->ClassNameIs("TForm1")) // 這裡用的是TForm延伸Type--TForm1 { TForm* P = dynamic_cast |
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: 先感謝五星上將cmf兄的支援, 雖然後學覺得這個蠻有意思的『動態、強制轉型』,仍有相當大的處理空間, 還是先將此題得分結案吧,得分給實戰功力強、探討問題深入的anpino兄。 BUT...還是請cmf兄、anpino兄與各位前輩繼續指導後學此題..... anpino兄的code,看來仍逃不了"列舉"方式,處理"隨機"的Parent;"列舉"--這是題目最後底限了..... 發表人 - kung 於 2003/12/09 14:20:16呃... 怎麼覺得應...應該是cmf得...得分呢... (心虛ing...) 因為在下只...只是將cmf兄的提示拿來實作而...而已說... 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
kung
一般會員 發表:4 回覆:8 積分:2 註冊:2003-11-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |