| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1867 人关注过本帖
标题:VC API常用函数简单例子大全分享下,顺便请大家帮忙解决下遇到的问题
取消只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:5 
VC API常用函数简单例子大全分享下,顺便请大家帮忙解决下遇到的问题
需要的图片.zip (1.09 MB)
在网上找怎么解决自己遇到的问题,让我给找到了个程序例子,讲的非常详细,非常实用(个人认为),给大家发过来分享下,地址如下:
http://www.
其实对于自学和初学的人来说,实例是很重要的,有些时候函数原型看不懂或不知道里面的参数该怎么变动,通过一些例子就能看出来那些参数的变化,就能知道哪些参数可以修改成自己需要的形式,这里面的例子有很多,有些是DOS窗口下执行的程序,有些是自己创建的窗口中添加的程序,这句话我也不知道该怎么表达,就这样写出来吧。有需要的可以在上面学习学习,或者把内容复制下来留个备份,以免什么时候网站打不开了,就不好找了。

下面说说我的问题吧,
在VC6里面新建了个Win32 Application工程,C++ Source File文件,
用API创建了个窗口,并添加了一个背景图片,在窗口上面有3个按钮,
刚打开程序可以显示背景图片和按钮,点击按钮可以加载和显示小的位图资源,但是当我把窗口拖动到屏幕外面时,再拖动回来后窗口上原来有的按钮和加载的小位图全都不见了,只剩一个背景位图在上面显示,只有在原来有按钮的地方点击一下,那个按钮才会显示出来,别的按钮没有点击不会显示,这个时候点击按钮仍然会加载并显示小位图,当我再把窗口拖动到屏幕外面再拖回来时上面加载并显示的东西除了背景图片以外又全部消失了,
只有背景位图在窗口中显示是因为我把加载和显示背景位图都放在重绘消息 case WM_PAINT: 里面了,如果窗口内容被覆盖而变为无效区域时,系统自动启动重绘消息把覆盖的内容重新显示出来,但是别的按钮和小位图资源也要显示出来该怎么办呢?把这些东西也都放在重绘消息里面应该也可以实现效果吧?但是看了一些例子(网上关于WIN32 API的例子实在是太少了,MFC的例子却是很多)他们的重绘消息里面根本就没有多少行代码。
把加载和显示背景图片放到重绘消息外面后,打开程序,不显示背景图片,但是显示按钮,把窗口拖动到屏幕外面再拖动回来发现按钮仍然存在,背景图片仍然不显示,说明加载和显示背景图片放到重绘消息中时,重绘窗口后按钮仍然存在,只不过是被背景图片给覆盖了,所以看不到,好长时间了,这个问题仍然是没有被解决,希望朋友们帮忙解决一下,有了你们的帮助我会进步的更快,学的更多。

最后希望能有人在闲暇之余帮我写个小例子可以让我参考一下,我可以看到平时写代码的不规范的地方,以及一些函数的用法和参数的修改,然后通过这个例子解决更为复杂的东西,
声明一下,我是自学的,一切都是凭自己的兴趣,我不需要求什么作业,有人帮忙我会感激不尽,分数再多也不是我解决问题的依仗,只是想解决掉困扰了半个月的问题。
需要用到的图片见下面的附件资源,例题需要实现的方面是:
总分=0,数A=0,数B=0,点击加分按钮,变量总分=点击按钮的次数*10,总分的值用小图片显示出来,点击按钮A一次,数A+1,数A下面显示数A的值,总分-1,代表总分的图片变成-1后的值,点击按钮B一次,数B+1,数B下面显示数B的值,总分-1,代表总分的图片变成-1后的值;
窗口拖动的只显示一半,然后在拖动回来,窗口上的东西不会消失,保持拖动到屏幕外之前的效果;
谢谢大家帮忙。
我的源代码.rar (754.1 KB)


[ 本帖最后由 小赵q1 于 2012-5-3 01:38 编辑 ]
搜索更多相关主题的帖子: 网上 
2012-05-02 05:47
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 6楼 有容就大
看别人的代码是件很痛苦的事情,并且还是一个初学者的代码,或许有些地方可以借鉴一下并不是全部的地方都可以借鉴,好多地方都是重复的,想看源代码我给你发一个吧,我在C++/MFC板块发了一个好几天过去了都没有人看。
2012-05-02 20:59
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 8楼 有容就大
源代码已放到帖子里,希望有兴趣的朋友可以运行下看看,里面附带程序运行方法;
2012-05-03 01:36
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 10楼 beyondyf
b版太厉害了,哈哈,我的按钮不会消失了,在这一行代码
   hwnd=CreateWindow("sunxin2006","小窗口", //标题栏的名字;类名要跟上面注册的一样,不然出错
        WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,10,20,900,820,NULL,NULL,hInstance,NULL);
中用 '|'把WS_CLIPCHILDREN 连接起来就可以了,(不加WS_OVERLAPPEDWINDOW 创建的窗口上就没有最大化,最小化和关闭按钮,在任务栏也不能右键选择关闭)原来这么简单,
下一个问题是:
点击按钮加载并显示相应的图片窗口拖动后那些显示出来的图片消失了,被重绘掉了该怎么解决呢?可以用一个函数把窗口内设定的一个或几个矩形区域变为有效区域,例如:ValidateRect(CRect(20,40,60,90));编译出现未定义的符号"CRect",这个是怎么定义,应该在什么地方使用呢?PAINT里面用的吗?如果有很多矩形区域比如例子里面的图片位置有10个,该怎么解决呢?
2012-05-03 01:59
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 15楼 有容就大
背景图片上的就是那样了,上面小数字的位置为了方便对齐我就把它们显示在背景图片上了,点击一次加分按钮就判断总分每一位对应的值并显示在上面了,其实总分是10的时候,上面显示的图片是000010.
初始化的时候点击按钮A和点击按钮B没有反应,因为只有总分不等于0的时候点按钮A和按钮B总分才会减1,总分为0的时候,按钮A的值是不可能为1的,所以点击没有反应
2012-05-03 21:16
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 20楼 有容就大
我在csdn的论坛里找了一下,那里有好多这个方面的,好好参考一下哦。
2012-05-03 21:44
快速回复:VC API常用函数简单例子大全分享下,顺便请大家帮忙解决下遇到的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018247 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved