新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 计算机科学论坛计算机技术与应用『 编程心得 』 → VC常用技巧集锦(一) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 16481 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: VC常用技巧集锦(一) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 编程心得 』 的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 VC常用技巧集锦(一)

    VC常用技巧集锦(一)

    一。如何限制编辑框中的准许字符以及修改输入的字符
    使用ClassWizard处理WM_CHAR消息,计算nChar参量并决定所执行的操作,用户可以确定是否修改、传送字符。下例说明了如何显示字母字符,如果字符是字母字符,则调用CWnd ; OnChar,否则不调用OnChar.
    void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UITN nFlags )
    {
    file://Determine if nChar is an alphabetic character .
    if (: : IsCharAlpha ( ( TCHAR) nChar ) )
    CEdit : : OnChar (nChar, nRepCnt , nFlags );
    }
    如果要修改字符,则不能仅仅简单地用修改过的nChar调用CEdit : : OnChar,然后CEdit: : OnChar调用CWnd: : Default获取原来的wParam 和lParam 的值 ,这样是不行的。要修改一个字符,需要首先修改nChar,然后用修改过的nChar调用CWnd: : DefWindowProc。下例说明了如何将字符转变为大写:
    file://Make all characters uppercase
    void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UINT nFlags )
    {
    file://Make sure character is uppercase .
    if (: : IsCharAlpha ( .( TCHAR) nChar)
    nChar=: : CharUpper (nChar ) ;
    file://Bypass default OnChar processing and directly call
    file://default window proc.
    DefWindProc (WM_CHAR, nChar , MAKELPARAM (nRepCnt , nFlags )) ;
    }

    二。在程序运行期间,怎样禁止窗口右上方的关闭按钮
    CMenu *pMenu = AfxGetMainWnd()->GetSystemMenu(FALSE) ;
    if (pMenu)
    pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_GRAYED) ;

    // 变为非禁止状态
    CMenu *pMenu = AfxGetMainWnd()->GetSystemMenu(FALSE) ;
    if (pMenu)
    pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND|MF_ENABLED) ;


    三。画图屏幕不闪烁的方法
    当使视窗的某一区域无效时,系统将发送WM_UPDATE消息,引发视类的重画。如果在OnDraw()函数中简单地将所有的图形对象重画,将引起明显的闪烁。因此,需要做相应的处理。本系统采用了先在内存中绘制图形,然后再把绘好的图形以位图方式从内存拷贝到窗口客户。
    void CDrawView::OnDraw(CDC* pDC)
    {
    CDrawDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    CDC dc;
    CBitmap bitmap;

    CBitmap* pOldBitmap;
    CRect client;
    CRect rect;
    pDC->GetClipBox(client);//检取无效区
    GetClientRect(rect);//检取整个客户区
    if(dc.CreateCompatibleDC(pDC))//创建一个与pDC兼容的内存设备环境
    {
    if(bitmap.CreateCompatibleBitmap(pDC,rect.Width(),
    rect.Height()))//创建一与pDC兼容的位图,大小为整个客户区
    {
    OnPrepareDC(&dc,NULL);//使dc与pDC具有同样的映射关系
    pOldBitmap=dc.SelectObject(&bitmap);//将位图选入内存环境
    dc.SelectClipRgn(NULL);//使dc的整个客户区都成无效区
    dc.IntersectClipRect(client);//再“与上”检取的无效区,使
    file://内存环境与pDC检取的无效区相等
    }
    }
    CBrush brush;
    if(!brush.CreateSolidBrush(RGB(255,255,255)))
    return ;
    brush.UnrealizeObject();
    dc.FillRect(client,&brush);//将dc的作图区刷新成背景色

    if(m_drawObjs.GetCount()!=0)
    Draw(&dc);//将所有的画图对象在内存裁减区内重画


    pDC->BitBlt(client.left,client.top,client.Width(),client.Height(),
    &dc,client.left,client.top,SRCCOPY);//将内存裁减区的位图
    file://拷贝到窗口裁减区
    dc.SelectObject(pOldBitmap);

    }


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/28 10:15:00
     
     纯色理想 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      等级:大三暑假(TOFEL考了650分!)
      文章:50
      积分:760
      门派:XML.ORG.CN
      注册:2004/8/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给纯色理想发送一个短消息 把纯色理想加入好友 查看纯色理想的个人资料 搜索纯色理想在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看纯色理想的博客2
    发贴心情 
    继续哇~~
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/29 9:51:00
     
     纯色理想 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      等级:大三暑假(TOFEL考了650分!)
      文章:50
      积分:760
      门派:XML.ORG.CN
      注册:2004/8/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给纯色理想发送一个短消息 把纯色理想加入好友 查看纯色理想的个人资料 搜索纯色理想在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看纯色理想的博客3
    发贴心情 
    好东西 学习ING
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/8 10:49:00
     
     阳光不老 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:37
      积分:384
      门派:XML.ORG.CN
      注册:2004/10/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给阳光不老发送一个短消息 把阳光不老加入好友 查看阳光不老的个人资料 搜索阳光不老在『 编程心得 』 的所有贴子 访问阳光不老的主页 引用回复这个贴子 回复这个贴子 查看阳光不老的博客4
    发贴心情 
    少啊!

    ----------------------------------------------
    规矩网络 Refree.Cn 打造中国顶级的资源重组网站!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/20 17:37:00
     
     愚者 帅哥哟,离线,有人找我吗?
      
      
      威望:5
      头衔:愚者
      等级:计算机学士学位
      文章:259
      积分:2375
      门派:XML.ORG.CN
      注册:2004/10/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给愚者发送一个短消息 把愚者加入好友 查看愚者的个人资料 搜索愚者在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看愚者的博客5
    发贴心情 
    我想问一下。有没有C#的哦???

    ----------------------------------------------
    http://photo.cnitv.com/PicLib/Pictures/Pi_21377.gif
    人生的意义不在马到成功,而在于不断求索,奋力求成。每一件有意义的事都需要不得我们以坚强的信念去完成,这样,我们的生活才会更加充实,意志更加坚强。
    人与人之间虽然相隔很近,但是心却离得很远!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/22 0:23:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/12 18:00:33

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms