下面是鼠标的例子,在客户按下鼠标左键时,将会显示鼠标的当前位置坐标void CTestt1View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default CClientDC dc(this);
char str[32];
sprintf(str,"(%d,%d)",point.x ,point.y);
dc.TextOut(point.x ,point.y ,str ,strlen(str));
CView::OnLButtonDown(nFlags, point);
}
各位大虾:
CClientDC dc(this); //这句话有什么用啊?sprintf(str,"(%d,%d)",point.x ,point.y); //这句话有什么用?
//执行这句话后,str 的值是多少呢?
dc.TextOut(point.x ,point.y ,str ,strlen(str)); //这句话有什么用呢?
//这里为什么要 四个参数呢?
//确定一个位置 point.x ,point.y 就够了啊?
CView::OnLButtonDown(nFlags, point); //这句话有什么作用?
还有一个问题是,如果我把 sprintf(str,"(%d,%d)",point.x ,point.y); 注释掉则显示的是乱码,这是什么原因呢?谢谢!
{
// TODO: Add your message handler code here and/or call default CClientDC dc(this);
char str[32];
sprintf(str,"(%d,%d)",point.x ,point.y);
dc.TextOut(point.x ,point.y ,str ,strlen(str));
CView::OnLButtonDown(nFlags, point);
}
各位大虾:
CClientDC dc(this); //这句话有什么用啊?sprintf(str,"(%d,%d)",point.x ,point.y); //这句话有什么用?
//执行这句话后,str 的值是多少呢?
dc.TextOut(point.x ,point.y ,str ,strlen(str)); //这句话有什么用呢?
//这里为什么要 四个参数呢?
//确定一个位置 point.x ,point.y 就够了啊?
CView::OnLButtonDown(nFlags, point); //这句话有什么作用?
还有一个问题是,如果我把 sprintf(str,"(%d,%d)",point.x ,point.y); 注释掉则显示的是乱码,这是什么原因呢?谢谢!
解决方案 »
- 关于Ctrl+f10及没有找到MFC80UD.DLL的的问题
- vc在数据库中执行插入或是删除会出现在第一行出现“,”或是“*”错误
- 为什么第一次连接行,第二次连接就不行了,SOCKET
- 如何获取 新浪网 的Content-Length???高手帮忙啊,急急急
- declarative query是个什么东西??
- 将一个目录下所有源文件递归添加并创建Visual C++工程中的工具
- 请问高手,那里有软件注册序列号的生成和验证相关算法的源代码或资料(高分求购)
- 根据listview中被选中的一个item弹出一个对话框,如何使该对话框关闭后item仍被选中?
- 如何让弹出菜单有默认的选择项
- 如何在程序中向modem发at命令?
- 如何使用WindowsAPI提供的MD5加密函数?
- 在RichEditCtrl中,如果我想將顯示和數据分開,但是又要同步,怎做呢?感觉这个问题超强!
-- 获得当前对象的客户区DC(即画布)sprintf(str,"(%d,%d)",point.x ,point.y); //这句话有什么用?
//执行这句话后,str 的值是多少呢?
-- 将point.x,point.y(即鼠标当前的坐标)格式化到str中
-- 例如:如果鼠标的坐标是90,12则str的输出是“(90,12)”CView::OnLButtonDown(nFlags, point); //这句话有什么作用?
-- 调用父类的函数
-- 父类可能还需要处理一些东西,如果不调用,可能会导致未知的错误sprintf(str,"(%d,%d)",point.x ,point.y); 注释掉
-- 把这一句注释掉,str的值则不确定,输出自然是乱码
dc.TextOut(point.x ,point.y ,str ,strlen(str)); 这句话的意思是不是:
在坐标值为(point.x ,point.y)的点输出 str 的值 和 strlen(str) 的值?但是 为什么要 strlen(str) 这个参数呢?是不是表示输出的长度?
还向大哥请教的是:我不小心把 VC IDE 改变了模样,我想恢复为默认的,我我要怎么操作啊?谢谢大哥!
void CTestt1View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default CClientDC dc(this);
char str[32];
sprintf(str,"(%d,%d)",point.x ,point.y);
dc.TextOut(point.x ,point.y ,str ,strlen(str));
CView::OnLButtonDown(nFlags, point);
}
各位大虾:
CClientDC dc(this); //这句话有什么用啊? 和GetDC一类的作用把参看
http://www.yourblog.org/Data/20059/327387.html
类CClientDC派生于CDC,在构造时调用了Windows函数GetDC,在析构时调用了ReleaseDC。这意味着和CClientDC对象相关的设备上下文是窗口的客户区。要了解有关CClientDC的更详细的信息,请参阅联机文档“Visual C++程序员指南斨械摹吧璞干舷挛臄部分。#include <afxwin.h>
请参阅 CDC sprintf(str,"(%d,%d)",point.x ,point.y); //这句话有什么用?
//执行这句话后,str 的值是多少呢?两个坐标值变为字符输出注意[应该这样看],%d。 这函数 和printf 基本一样 不过基于窗口 要由TextOut输出
文字输出函式是TextOut。该函式的格式如下:TextOut (hdc, x, y, psText, iLength) ;
dc.TextOut(point.x ,point.y ,str ,strlen(str)); //这句话有什么用呢?这个 只是MFC派生出来的用法 其实 [TextOut 也是派生出来吧 竟然没有原型,找不到] //Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
//
//这里为什么要 四个参数呢?
//确定一个位置 point.x ,point.y 就够了啊?
CView::OnLButtonDown(nFlags, point); //这句话有什么作用?看名字就知道是按下鼠标左键
还有一个问题是,如果我把 sprintf(str,"(%d,%d)",point.x ,point.y); 注释掉则显示的是乱码,这是什么原因呢?str hui 会是什么值 你说呢?谢谢!
青下载我的帖子 熟读
书 名:Programming Windows程式开发设计指南
出版日期:2000/6/2
书 号:957-8239-73-4
I S B N:957-8239-73-4
原 作 者:Charles Petzold
译 者:余孟学
获得设备上下文,作图或文本输出时必须获得设备上下文