posts - 1,  comments - 1,  trackbacks - 0
from:http://blog.csdn.net/lsm307742191/archive/2009/03/08/3969154.aspx
WTL
项目中插入ATL控件。有点不明白,WTL本身就是扩展ATL,但WTL向导产生的工程,竟不能使用ATL控件。还得手工加一些东西来欺骗VS6VS6才让插入ATL控件。

1.         在工程增加一个Atl.idl文件,并排除在编译之外。

library Atl { };

 

2.         在源文件加入一个宏。

#if 0

   #include < atlcom.h >

   BEGIN_OBJECT_MAP(ObjectMap) END_OBJECT_MAP()

#endif

 

l         限制窗口的大小。

MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)

LRESULT OnGetMinMaxInfo(UINT, WPARAM, LPARAM lParam, BOOL&)

{ // load size structure with lParam values

  LPMINMAXINFO lpMMI = (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

 

  return 0;

}

 

 

l         修改对话框和背景的颜色。

MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor)

MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor)

LRESULT OnCtrlColor(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         让视图打开时就最大化。

         LRESULT OnFileNew(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)

         {

                   CChildFrame* pChild = new CChildFrame;

                   pChild->CreateEx(m_hWndClient);

                   pChild->ShowWindow(SW_SHOWMAXIMIZED);

                  

                   // TODO: add code to initialize document

 

                   return 0;

         }

l         渐变颜色填充。

         RECT rect;

         GetClientRect(&rect);

        

         TRIVERTEX tv[] =

         {

                   { rect.left, rect.top, 0xff00 },

                   { rect.right, rect.top + m_cxyHeader, 0, 0xff00 }

         };

         GRADIENT_RECT gr = { 0, 1 };

 

         dc.GradientFill ( tv, 2, &gr, 1, GRADIENT_FILL_RECT_H );

posted on 2009-05-20 14:09 Aiscanf 阅读(206) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

  • 1. re: wince中消息处理
  • winCE同样不接受窗口非客户区产生的消息,如WM_NCMOUSEMOVE
    我想当鼠标在非客户区移动是写些代码你有办法处理吗?有的话给我指点指点,
    crow024@163.com
  • --as