加载中…
个人资料
YangBin
YangBin
  • 博客等级:
  • 博客积分:0
  • 博客访问:44,879
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
友情链接

精品下载网

精心收集整理,免费提供各种精品软件、教程、书籍、素材下载

维C世界

 VCer.net的话 你有一个苹果,我有一个苹果, 我们交换一下,一人还是一个苹果; 你有一个思想,我有一个思想, 我们交换一下,一人就有两个思想

阿蒙编程之家

VC++MFCSDK|程序员博客网|源码下载

VC在线

全力打造专业级VC编程技术网站,包括vc编程文章,vc源代码下载

Vc爱好者V3.0

欢迎光临Vc爱好者 V3.0

VC知识库

提供VC免费源码和教程, Visual  C++,MFC,SDK等帮助

CSDN.NET

中国最大的IT技术社区

CSDN社区中心

专业开发类技术社区

留言
加载中…
好友
加载中…
访客
加载中…
评论
加载中…
博文
标签:

vc

工具条

toolbar

杂谈

分类: VC.基础类.界面.图形处理
 

 

step1:
  在资源编辑器中插入工具条资源,并为每个按钮创建ID。将它命名为IDC_TOOLBAR1
  step2:
  在对话框变量中添加一个工具条变量。
CToolBar m_wndToolBar;
  step3:
  在CDialog::OnInitDialog中添加如下代码:
// 创建工具条并调入资源
if(!m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0('Failed to Create Dialog Toolbar\n');
EndDialog(IDCANCEL);
}
CRect rcClientOld; // 久客户区RECT
CRect rcClientNew; // 加入TOOLBAR后的CLIENT RECT
GetClientRect(rcClientOld); //
// Called to reposition and resize control bars in the client area of a window
// The reposQuery FLAG does not really traw the Toolbar. It only does the calculations.
// And puts the new ClientRect values in rcClientNew so we can do the rest of the Math.
//重新
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

动态

对话框

大小

杂谈

 
 
if(n==level) //level默认的一个等级参数,当n>level时就需要调整对话框的大小
   return;
if(n>level)
{
   int ln=26;
   ln=ln*(n-level);
   //移动主对话框位置
   int cx=GetSystemMetrics(SM_CXSCREEN);   //屏幕宽度
   int cy=GetSystemMetrics(SM_CYSCREEN);   //屏幕高度
   CRect rectWindow;  
   GetWindowRect(&rectWindow);             //得到对话框在屏幕上的坐标区域
   int w=rectWindow.Width();  
   int h=rectWindow.Height();
   AfxGetApp()->m_pMainWnd->MoveWindow(cx-w,cy-h-28-ln,w,h+ln,true);//移动窗体并改变大小
   CRect rc;
&nb
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

背景色

背景图片

杂谈

分类: VC.基础类.界面.图形处理

改变背景颜色,有两种方法:

1、在app的初始化函数中调用:
void SetDialogBkColor( COLORREF clrCtlBk RGB(192, 192, 192), COLORREF clrCtlText RGB(0, 0, 0) );
2、在对话框类的OnCtlColor函数中:
if(nCtlColor == CTLCOLOR_DLG)
 {
  CBrush *brush;
  brush new CBrush(RGB(221,221,221));
  return (HBRUSH)(brush->m_hObject);
 }


设置背景位图:

void CTestDlg::OnPaint() 
{
 CRect r;
 GetClientRect(&r);

 CPaintDC dc(this);
 CRect rect=CRect(0,0,r.Width()/5,r.Height()/3);
 //GetClientRect(&rect);
 CDC dcMem; 
 dcMem.CreateCompatibleDC(&dc); 

 CBitmap bmpBackground;
 bmpBackground.LoadBitmap(IDB_BITMAP2);

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

自定义

afxmessagebox

杂谈

分类: VC.基础类.界面.图形处理


一、需求
  与标准的 MessageBox 相比,MFC提供了 AfxMessageBox 的方法是我们对消息框的变得更加容易。然而简单的 AfxMessageBox 有时已经不能够满足我们的需求了:有时候我仅仅想提示用户一下,并不需要用户确认,也就是说过一段时间消息框就能自动关闭。
  您可能马上会想到,使用自己定义的对话框来替代程序中的 AfxMessageBox,没错,这样的结果非常能够让你满意,但怎么实现呢?
  您也许会说,我自己写一个 OwnMessageBox 函数,先前调用 AfxMessageBox 的地方都换成它就好了,非常好的主意!但你终归要去一个个的替换,是不是感觉很没有挑战性呢?现在本文将介绍一个比较好的办法解决此问题。

二、解决办法
  MFC中的CWinApp提供了一个名为 DoMessageBox 的虚函数供它的子类进行重载操作,我们先来看一下AfxMessageBox的源代码:
       int AFXAPI AfxMessageBox(LPCTSTR lpszText, UINT nType, UINT nIDHelp)       {             CWinApp* pApp = AfxGetApp();             if (pApp != NULL)                   return pApp->DoMessageBox(lpszText, nType, nIDHelp);             el
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

鼠标

按钮

控件

杂谈

分类: VC.基础类.界面.图形处理
鼠标进入按键之类的控件所以那么难判断,是因为按键截住了鼠标移动的信息WM_MOUSEMOVE,所以通过该消息没办法在对话框或FromView类中获取鼠标移动进按键的信息。
第一步是建立一个CButtton的派生类CMyButton:CButton,然后通过ClassWizard建立该类的WM_MOUSEMOVE消息映像函数。
第二步是编辑该函数:
void CMyButton::0nmousemove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMainFrame* MFrame=(CMainFrame*)AfxGetMainWnd();//获取主框架指针
int nID=GetDlgCtrlID(); //在主框架中加入public: int nID变量
//通过GetDlgCtrID函数将CMyButton生成的控件ID
MFrame->nID=nID; //将ID传递给主框架类中的nID变量
//这一步将减少此后的很多工作,使工作的能动性非常高。
MFrame->GetButtonHelp(); //调用主框架函数,该函数是自己添加的,可以任意命名。
CButton::0nmousemove(nFlags, point);
}
这一步的最后别忘了在MyButton.cpp的其它包含语句后面加上#include “MainFrm.h”
第三步:通过ClassWizard为每一个需要
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

picture

控件

杂谈

分类: VC.基础类.界面.图形处理

vc picture控件的分类进行拉总结,

(一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)
(二) 动态载入图片(即只需要在程序中指定图片的路径即可载入)
为方便说明,我们已经建好一个基于对话框的工程,名为Ttest.
对话框类为CTestDlg
(一)     vc picture控件非动态载入图片.
方法1.先从最简单的开始,用picture 控件来实现.
步骤:
先在资源里Import一张图片,ID为IDB_BITMAP2

然后在对话框上添加一个picture控件,右键点击打开属性,
将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,
拉开就会看到所有已经载入好的图片,
选择你要的图片.运行程序即可看到.
方法2vc picture控件.通过背景图
同样如上,先载入一张图片,ID为IDB_BITMAP2
TestDlg.h中
CBrush m_brBk;//在public中定义
TestDlg.cpp中
在初始化函数OnInitDialog()中加入:
BOOL CTestDlg::OnInitDialog()
{
     CDialog::OnInitDialog();
     CBitmap bmp;
    

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

程序

标题

杂谈

分类: VC.基础类.界面.图形处理

 1·文档标题的改变  
           
  文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行上面  
  AppWizard生成的程序SDITitle,选择选单中的“文件”“打开”选项,打开  
  “SDITitile.h”文件,则标题栏变成“SDITitle.h   -   SDITitle”。这一切动  
  作都是MFC类自动进行的。了解这一点,我们可在相应的文档类中,利用SetTitle   ()    
  函数来改变文档标题。  
          例:改变CSDITitleDoc::OnNewDocument()   函数为:  
          BOOL CSDITitleDoc::OnNewDocument()  
          {  
             if(!CDocument::OnNewDocument())  
                          return   FALSE;  

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

自制定鼠标

杂谈

分类: VC.基础类.界面.图形处理

定义全局变量

HCURSOR m_BTHand;

在 ini事件中加入

m_BTHand = AfxGetApp()->LoadCursor(IDC_Hand);

//是IDC_Hand引入的一个资源文件cur格式。

BOOL CMyButtonFontDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg-> message==WM_MOUSEMOVE)
{//鼠标移动消息
   //获得当前鼠标位置
   POINT   pt=pMsg-> pt;
   //转换为客户坐标系
   ScreenToClient(&pt);
   //获得当前位置的控件窗口指针
   CWnd*   pWnd=ChildWindowFromPoint(pt);
   //获得该窗口的ID
   UINT   nCtrlID=pWnd-> GetDlgCtrlID();
   switch(nCtrlID)
   {//判断窗口
   
   case   BT_FontSet:
    //显示帮助光标
    SetCursor(m_BTHand);

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

弹出式菜单

杂谈

弹出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单。通常情况下,弹出式菜单在鼠标右键单击时弹出,当然,也可以根据需要随时弹出。 在VC++5的MFC中,管理菜单的类叫CMenu。下面我向大家介绍建立一个弹出式菜单的基本方法。
一、在资源编辑器中建立一个菜单资源
   新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜单的内容。如右图,“可弹出项”下的菜单即为将要建立的弹出式菜单的内容。实际上,“可弹出项”这个名称在以后的操作中不会被用到,但VC++5不允许直接建立弹出式菜单,所以采用先建立“可弹出项”的方法。
   至于每一个菜单项的消息映射,与一般的菜单相同。
   二、使用CMenu类对象
      CMenu类的成员函数较多,但建立弹出式菜单只需用到其中几个成员函数。
   1、LoadMenu函数
      原型:BOOL LoadMenu( UINT nIDResource );
   其中nIDResource是菜单资源的ID号,这里用的是刚建立的IDC_POPMENU。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

vc

不规则窗体

杂谈

分类: VC.基础类.界面.图形处理




  说起不规则窗体也许我们大家都会觉得新鲜,这是因为我们平日里绝大部分窗体用的都是正规正矩的矩形窗体,Word这个大名鼎鼎的软件想必大家都已用过,那么在Word里就按下你手中的F1键吧,弹出的窗体形态怎么样,很炫吧!(如下图所示)。
 
那么实现这样的窗体困难吗?简单!几句话就可以轻松搞定。不过在揭示答案之前我们还是先来熟悉一下在Windows里不规则窗体的实现几点要素。 

一、创建不规则窗体的几个主要函数:
<1> CreateRectRgn : 创建矩形窗体轮廓。
<2> CreateRoundRectRgn : 创建圆角矩形窗体轮廓。
<3> CreateEllipticRgn : 创建圆形或椭圆形窗体轮廓。
<4> CreatePolygonRgn : 创建多边形窗体轮廓。

上面函数在创建不规则窗体轮廓时可直接使用,无须自己指定轮廓路径。如果想让窗体更复杂,你可以使用CombineRgn把多个轮廓路径混合起来实现。上面的函数还可

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有