《C语言到底能干什么》1.14 简单的整蛊——窗口抖动程序的实现
2010-03-20 18:04
736 查看
一次朋友曾给我传了个有趣的程序,单击后振动的窗口飘来飘去,其实也就是不停地移动窗口,后来分析后,才知道原来只 是移动当前活动的窗口而已,想想这个也很好现,就是获得当前活动的窗口,然后用MoveWindow函数去改变它的位置不就 可以了,原来还以为这个程序有什么特别的呢,后来想也没什么了,这节我们来写个这样的程序,我也不想复杂的实现,就简单点。
/********************WobbleWnd.rc***************/
#include<resource.h>
#defineDLG_MAIN1
#defineICO_MAIN0X1000
//#defineIDB_BMP0X4000
ICO_MAINICON"XHK.ICO"
//IDB_BMPBITMAP"XHK.BMP"
DLG_MAINDIALOG255,205,100,100
STYLEWS_SYSMENU|WS_MINIMIZEBOX
CAPTION"WobbleWindow"
FONT9,"宋体"
{
}
下面是程序实现代码:
/***********WobbleWnd.c*****************/
#include<windows.h>
#defineDLG_MAIN1
#defineICO_MAIN0X1000
LRESULTCALLBACKDialogProc(HWNDhWnd,UINTuMsg,WPARAMwParam,LPARAMlParam)
{
HINSTANCEhInstance=GetModuleHandle(NULL);
HICONhIcon;
HWNDhDestWnd;
RECTrc;
inti=0;
switch(uMsg)
{
caseWM_INITDIALOG:
hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(ICO_MAIN));
SendMessage(hWnd,WM_SETICON,ICON_BIG,(long)hIcon);
SetTimer(hWnd,0,10,NULL);
returnTRUE;
caseWM_TIMER:
i=(rand()-rand())/1000;
if((hDestWnd=GetForegroundWindow())!=NULL){
GetWindowRect(hDestWnd,&rc);
if(rc.top<0||rc.bottom>800)
rc.top=100;
if(rc.left<0||rc.right>1000)
rc.left=100;
MoveWindow(hDestWnd,rc.left+i,rc.top+i,rc.right-rc.left,rc.bottom-rc.top,TRUE);
}
//SendWindowMessage(
returnTRUE;
caseWM_CLOSE:
KillTimer(hWnd,0);//取消定时器
EndDialog(hWnd,0);
returnTRUE;
}
returnFALSE;
}
intWINAPIWinMain(HINSTANCEhInstance,
HINSTANCEhPreInstance,
LPSTRlpCmdline,
intnShowCmd)
{
DialogBoxParam(hInstance,MAKEINTRESOURCE(DLG_MAIN),0,DialogProc,0);
srand((unsigned)time(NULL));
return1;
}
代码是相当简单的,没有任何要学习的东西,纯粹是为了吸引大家的兴趣,让大家看看自己的学的东西到底能用到什么地方。 当我完成这个之后,把代码给我同学看,同学们都不相信这么少的代码就能做到。这个程序如果不要窗口和资源,写成控制 台的程序,代码会更少。由于我没有很好的想这个程序那个随机的算法,可能窗口会有向左上角移动的趋势,而且最终窗口 会变得的小。这个问题大家是会解决的,不会编程都可以解决的,何况会编程的你呢。
总结:
这样吧,这章就这样结束了,当然窗口类程序的编写,这里说的只是一点皮毛而已,但这些都是基础,学好了对以后就会很
有帮助的,而且你现在已经可以做出窗口的程序了,是不?说明你已经可以脱离菜鸟级了,Comeon吧,很快你就会成为高
手的。俗话说,师傅领进门,修行靠个人,我以前把你领到这里了,你想去哪里就去哪里吧。
相关文章推荐
- 《C语言到底能干什么》1.2 第一个真正的窗口程序
- 《C语言到底能干什么》第一章 窗口类程序的编写
- 《C语言到底能干什么》1.3 窗口程序的编写
- 一个大学C语言试题的简单实现--员工信息管理程序
- 简单的C语言实现程序
- 简单说明什么是递归?什么情况会使用?并使用Java实现一个简单的递归程序。
- 《C语言到底能干什么》 序言
- 简单的的SimpleTron(C语言实现,程序内部实现体验)
- 继续《C语言到底能干什么》1.4 鼠标指针特效
- C语言实现简单三子棋程序
- Linux Socket 事件触发模型 epoll 示例 这里会写一个用C语言的TCP服务器的完全实现的简单程序
- [置顶] C语言实现的一个简单的HTTP程序(转)
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- 一个简单c语言windows程序的实现
- C语言实现的简单银行存取款程序 请输入如下数字命令
- c语言小程序之扫雷简单实现
- 模拟器与程序分析-4-一个简单的周期精确模拟器(CAS)的C语言实现
- C语言实现简单的打字程序