[問題]用BCB如何自行設定更改標題列的顏色 |
尚未結案
|
plihui
初階會員 發表:88 回覆:96 積分:41 註冊:2003-07-03 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 請問各位大大: 如果想自行更改標題列的顏色 該如何設定呢??plihui你好: 這個問題好像之前討論過,如果你是要改變 class="code"> In Unit1.h ~~ class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button2; void __fastcall Button2Click(TObject *Sender); private: // User declarations TWndMethod OldFormWndProc; void __fastcall FormWndProc(TMessage&); public: // User declarations __fastcall TForm1(TComponent* Owner); }; ~~ In Unit1.cpp ~~ TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { OldFormWndProc=this->WindowProc; this->WindowProc=FormWndProc; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormWndProc(TMessage& Message) { OldFormWndProc(Message); if (Message.Msg==WM_NCPAINT) { HDC dc=GetWindowDC(Handle); RECT rect; rect.left=4; rect.right=200; rect.top=4; rect.bottom=22; TBrush* bsh=new TBrush; bsh->Color=clRed; TPen* pen=new TPen; pen->Color=clRed; SelectObject(dc,bsh->Handle); SelectObject(dc,pen->Handle); Rectangle(dc,4,4,this->Width-4,22); //DrawCaption(Handle,dc,&rect,DC_GRADIENT); //DrawCaption(Handle,dc,&rect,DC_TEXT | DC_GRADIENT); //DrawCaption(Handle,dc,&rect,DC_ICON | DC_GRADIENT); ReleaseDC(Handle,dc); delete bsh; delete pen; } }這是我之前的做法,就是劃一條長條上去,就可以改變顏色了,但caption上面的icon、text、 min_btn、max_btn都被蓋掉了,需要再補回去,這裏的範例並沒有補回去,因為我認為這方向的作法 並不effective and wise,所以略過,視需要補充之! 方向二: 目前找到系統提供的改變caption的方法只有一個,但是會把全部系統的Form caption都變色, 無法針對單一的! void __fastcall TForm1::Button1Click(TObject *Sender) { int aiElements[1]={COLOR_ACTIVECAPTION}; DWORD aColors[1]={clRed}; SetSysColors(1,aiElements,aColors); }嗯,無法針對單一Form是限制的地方!另外這樣的寫法是volatile的,所以不用擔心變不回來! 方向三: 不小心看到一篇hagar版主的文章,解法應類似方向一的解法,但似乎慎密多了, 可以研究研究! http://delphi.ktop.com.tw/topic.php?topic_id=54730 以下,小小心得,著參著參! 發表人 - |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |