WTL 学习笔记 -- 几则技巧

本文介绍了WTL项目中的一些实用技巧,包括如何在WTL项目中插入ATL控件、限制窗口大小、修改对话框及背景颜色、使窗口最大化显示以及实现渐变颜色填充等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:
  WTL 学习笔记-- 几则技巧
  
  l WTL 项目中插入 ATL 控件。有点不明白,WTL本身就是扩展ATL,但WTL向导产生的工程,竟不能使用ATL控件。还得手工加一些东西来欺骗VS6,VS6才让插入ATL控件。
  1. 在工程增加一个Atl.idl文件,并排除在编译之外。
  library Atl { };
  
  2. 在源文件加入一个宏。
  #if 0
  #include
  BEGIN_OBJECT_MAP(ObjectMap) END_OBJECT_MAP()
  #endif
  
  l 限制窗口的大小。
  MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)
  LRESULTOnGetMinMaxInfo(UINT, WPARAM, LPARAMlParam, BOOL&)
  { // load size structure with lParam values
  LPMINMAXINFOlpMMI= (LPMINMAXINFO)lParam
  
  // change the values in the size structure to desired values
  lpMMI->ptMinTrackSize.x= 200; // min width
  lpMMI->ptMinTrackSize.y= 150; // min height
  lpMMI->ptMaxTrackSize.x= 600; // max width
  lpMMI->ptMaxTrackSize.y= 450; // max height
  
  return0;
  }
  
  
  l 修改对话框和背景的颜色。
  MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor)
  MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor)
  LRESULTOnCtrlColor(UINT, WPARAM, LPARAM, BOOL&)
  { // set background mode and text color
  SetBkMode((HDC)wParam, TRANSPARENT); // transparent background
  SetTextColor((HDC)wParam, RGB(255, 255, 255)); // white text
  
  return(LRESULT)AtlGetStockBrush(BLACK_BRUSH);
  }
  
  
  l 让主窗口打开时就最大化。
  wndMain.ShowWindow(nCmdShow| SW_SHOWMAXIMIZED);
  
  l 让视图打开时就最大化。
  LRESULTOnFileNew(WORD/*wNotifyCode*/, WORD/*wID*/, HWND/*hWndCtl*/, BOOL&/*bHandled*/)
  {
  CChildFrame* pChild= newCChildFrame
  pChild->CreateEx(m_hWndClient);
  pChild->ShowWindow(SW_SHOWMAXIMIZED);
  
  // TODO: add code to initialize document
  
  return0;
  }
  l 渐变颜色填充。
  RECTrect
  GetClientRect(&rect);
  
  TRIVERTEXtv[] =
  {
  { rect.left, rect.top, 0xff00 },
  { rect.right, rect.top+ m_cxyHeader, 0, 0xff00 }
  };
  GRADIENT_RECTgr= { 0, 1 };
  
  dc.GradientFill( tv, 2, &gr, 1, GRADIENT_FILL_RECT_H);
  
  Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=662330

本文转自
http://blog.youkuaiyun.com/absurd/archive/2006/04/13/662330.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值