⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.cpp

📁 本书《C++Builder与WindowsAPI经典范例》附含配套光盘包括132个WindowsAPI函数及206个完整、可执行的实例
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{//将闲置属性作为递增变量
Button1->Tag = 0;
}
//---------------------------------------------------------------------------
//单击按钮,则可循环转换工具栏组件(ToolBar1)母窗口
void __fastcall TForm1::Button1Click(TObject *Sender)
{//判断递增变量的循环转换
switch(Button1->Tag%3)
  {
  case 0: ::SetParent(ToolBar1->Handle,Panel1->Handle);break;
  case 1: ::SetParent(ToolBar1->Handle,Panel2->Handle);break;
  case 2: ::SetParent(ToolBar1->Handle,::GetDesktopWindow());break;
  }
//重设工具栏组件位置与尺寸
::SetWindowPos(ToolBar1->Handle,HWND_TOPMOST,
               30, 30,
               ToolBar1->Width/2, ToolBar1->Height/2,
               SWP_SHOWWINDOW
               );
Button1->SetFocus();//仍由按钮取得焦点
++Button1->Tag;//变量递增,以备下次点按按钮
}
//---------------------------------------------------------------------------
//若user同时按住Ctrl键,并用鼠标左键拖曳Panel1,即可拖曳Panel1
void __fastcall TForm1::ToolBar1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbLeft && Shift.Contains(ssCtrl))
  {//释放原有鼠标捕捉状态,
  //并同时送出鼠标单击位置等同于窗口标题列可拖曳窗口的属性
  ::ReleaseCapture();
  SNDMSG(ToolBar1->Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
  }
//若在桌面拖曳ToolBar1时,Button1无法定位而失去单击能力,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -