给一个自画标题栏的思路

hzhxxx 2003-02-17 09:17:08
同上!

给一个自画标题栏的思路
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcaiyao 2003-02-17
  • 打赏
  • 举报
回复
修改字体颜色:
::SetTextColor(Canvas->Handle,RGB(255,255,255));
修改背景色:
::SetBkColor(Canvas->Handle,RGB(255,0,0));
hzhxxx 2003-02-17
  • 打赏
  • 举报
回复
颜色修改怎么样啊?
hzhxxx 2003-02-17
  • 打赏
  • 举报
回复
不错。
痞子酷 2003-02-17
  • 打赏
  • 举报
回复
这是从网上copy过来的例子 ,你看看先
标题: 自画标题栏的一个例子


关键字:自画标题栏,WndProc,Canvas,Rect,CreateFontIndirect


.h File
//---------------------------------------------------------------------------

#ifndef wmncH
#define wmncH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
void __fastcall FormPaint(TObject *Sender);
void __fastcall FormResize(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
private:void __fastcall OnNcHitTest(TMessage &Message);
// User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_NCHITTEST,TMessage,OnNcHitTest);
END_MESSAGE_MAP(TForm);
protected:
virtual void __fastcall WndProc(TMessage &Message);
virtual void __fastcall CreateParams(TCreateParams ¶ms);

};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
.cpp File
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "wmnc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CreateParams(TCreateParams ¶ms)
{

TForm::CreateParams(Params);
Params.Style|=WS_POPUP;
Params.Style^=WS_DLGFRAME;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnNcHitTest(TMessage &Message)
{
TPoint PT;
PT.x=LOWORD(Message.LParam);
PT.y=HIWORD(Message.LParam);
PT=ScreenToClient(PT);
RECT rect;
::SetRect(&rect,0,0,20,ClientHeight);
if(PtInRect(&rect,PT))
{
Message.Result=HTCAPTION;
//ShowMessage("How are you");
}
else
{
DefaultHandler(&Message);
}
}

void __fastcall TForm1::FormPaint(TObject *Sender)
{
RECT rect;
::SetRect(&rect,0,0,ClientWidth,ClientHeight);
Canvas->Pen->Color=clBlue;
Canvas->Brush->Color=clBlue;
Canvas->Rectangle(0,0,20,ClientHeight);
char *msg="My Fellow Citizens!";
LOGFONT fontRect;
memset(&fontRect,0,sizeof(LOGFONT));
fontRect.lfHeight=-13;
fontRect.lfWeight=FW_NORMAL;
fontRect.lfEscapement=900;
lstrcpy(fontRect.lfFaceName,"宋体");
HFONT hFont=CreateFontIndirect(&fontRect);
HFONT hOld=::SelectObject(Canvas->Handle,hFont);
::SetRect(&rect,0,0,20,ClientHeight);
::SetTextColor(Canvas->Handle,RGB(255,255,255));
::SetBkColor(Canvas->Handle,RGB(255,0,0));
::TextOut(Canvas->Handle,3,ClientHeight-3,msg,lstrlen(msg));
::SelectObject(Canvas->Handle,hOld);
::DeleteObject(hFont);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WndProc(TMessage &Message)
{
if(Message.Msg==WM_SYSCOMMAND)
{

if(Message.WParam==SC_MAXIMIZE || Message.WParam==61490)
{
Invalidate();
}

}
TForm::WndProc(Message);
}

void __fastcall TForm1::FormResize(TObject *Sender)
{
Invalidate();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
int button;
button=Application->MessageBox("Do you want to exit thisform?","Confirmation",MB_YESNO+MB_ICONQUESTION);
if(button==IDYES)
{
Application->Terminate();
}
}
//---------------------------------------------------------------------------

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧