随笔分类 - windowsSDK编程
摘要:上几天看了人家用c语言在控制台上面写俄罗斯方块,觉得自己应该能在SDK上写个贪吃蛇出来。毕竟贪吃蛇比俄罗斯方块简单一点吧。运用知识1.GUI绘图2.计时器3.键盘控制思路(一)蛇的产生机制1.蛇身体的绘制(n个正方形,创建结构体存放4个点坐标,创建结构体数组)2.运用键盘改变蛇的前进方向(其实改变的只有头尾,并递推改变数组)(二)食物的产生机制1.获取当前窗口大小2.利用随机函数产生x,y为食物(用正方形或圆形函数绘制)的左上角坐标3.绘制食物(三)吃食物机制1.必须验证是蛇头吃到食物2.吃到食物后食物消失并且重新产生食物(重新产生的食物最好不与蛇的身体重合)3.蛇的身体的增长(与当前蛇前进的
阅读全文
摘要:事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。产生事件对象的函数如下:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD BOOL bManualReset, // reset type BOOL bInitialState, // initia...
阅读全文
摘要:自己看对话框也有些时间了,下面来总结下对话框的一些知识点。对话框有模态对话框和非模态对话框两种基本形式。非模态对话框允许我们把输入焦点切换到同一个应用程序的另一个窗口,该对话框也无需关闭,这个比较普遍。模态对话框主要是两类:应用程序模式对话框和系统对话框。应用程序对话框不允许我们在本应用程序中切换输入焦点,但是可以切换到其他应用程序中去,比如点击记事本的文件打开按钮,会弹出选择打开文件的对话框,这个对话框不能切换到记事本中,但是可以切换到其他应用程序中去。这个就是属于应用程序模式对话框。系统对话框则比较恶毒,不允许你切换到任何一个应用程序中,我们一看名字就知道,系统对话框,看似比较紧急,要求我
阅读全文
摘要:在看对话框之前,还是觉得有必要先看一下子窗口控件,很多对话框的知识点都涉及到子窗口控件。正好看到学长的一篇实现窗口透明化的文章,对它比较感兴趣,于是就想拿这个例子来练练手首先先介绍下窗口透明化的实现:首先是下面这个函数LONG SetWindowLong(HWND hWnd,int nlndex,LONG dwNewLong);SetWindowLong该函数改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。 SetWindowLong(hwnd,GWL_EXSTYLE,WS_EX_LAYERED);上面这条代码扩展了一种窗口风格,其中GWL_EXSTYLE
阅读全文
摘要:今天在看windows程序设计菜单里面的加速键,看了好几遍才勉强看懂,下面来解释一下书本里面的代码: #include <windows.h>
#include "resource.h" #define ID_EDIT 1 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); TCHAR szAppName[] = TEXT ("PopPad2") ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, ..
阅读全文
摘要:这几天在看菜单,今天自己动手写了一下,出现了一些错误。首先我先自己简单的写了一个只包含菜单资源的文件:#include <windows.h>
#include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //TCHAR szAppName[] = TEXT ("ownmenu") ; (改进后加的代码)
TCHAR MenuName[] = TEXT("IDR_MENU1"); int WINAPI WinMain (HINST
阅读全文
摘要:昨天晚上失眠了,于是一直在想实现GDI的一个效果:首先绘制10个相连的矩形,当鼠标移到某个矩形的时候,自动填充那个矩形的背景颜色为灰色,移开的时候恢复原来的白色。当只有一个矩形的时候,当然不是一件难事。但是当有10个矩形的时候,问题就产生了。首先先看一下代码:#include <windows.h>
#include <math.h> #define NUM 10 struct own_rectangle{ int xLeft ; int xRight ; int yTop ; int yBottom ;
}rect[NUM]; LRESULT CALLBACK ...
阅读全文
摘要:今天在看SDK教学文章的时候,发现了一个关于位运算符的问题首先附上关键代码段: case WM_LBUTTONDOWN: { hitPoint.x = LOWORD(lParam); hitPoint.y = HIWORD(lParam); MouseClick = TRUE; InvalidateRect(hWnd,NULL,TRUE); } break;解释下这个代码段:处理当鼠标左键被按下的时候,保存存储在lParam中的鼠标所在的x,y的位置。...
阅读全文
摘要:最近想做一个模拟钢琴的小软件,想做个既有键盘接口又有鼠标接口的小软件。所涉及到的知识点如下: 1.有关键盘的知识 2.有关鼠标的知识 3.GDI的知识 4.媒体播放函数的有关知识 因为这几天也正好在看这些内容,所以理论结合实际是最好的学习方式 首先要找钢琴音阶,但是上网找了一圈也没有发现,最后在4399里面找到一个差不多类型的模拟钢琴游戏,而且音色不错,索性用Adobe Audition的录音功能将每个音阶都录下来做一些编辑,自己制作了20来个音阶,用mp3格式保存。然后用的是mcisendstring函数实现mp3格式音乐的播放。第一步首先做键盘接口,其实这一步还是比较简单的,在窗口过程里.
阅读全文
摘要:上几天帮同学搞了一个随机数生成器,首先在网上搜索了一下,发现网上有的做的也比较的简单,但是功能还是比较全的。而且发现自己学的东西刚好可以写一个随机数生成器。当然还有些预备知识没有学,所以现学现用了。计时器的有关知识我已经了解了,首先要用到创建字体,然后是创建父窗口控件,然后就是利用RGB的颜色的变化了。看了几天的书,终于写出来了。下面是代码:#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <time.h> #include <string.h>#def
阅读全文
摘要:今天开始认认真真仔仔细细地看windows编程的书本了,所以做下笔记。全局根的定义 \\ 路径名的限制(MAX_PATH 个字符)260,但是通过转义序列指定非常长的名称LPCTSTR = Long Point Constant T_(宏) STRing (以后理解了每个字母缩写的意思得话,记忆会方便很多)lpsz = long point string sero (指向以零结尾的字符串的长指针)关于长指针 近指针 空指针的概念 http://hi.baidu.com/fcwyz/blog/item/af764044c204b687b2b7dc86.html (参考文献 空指针的用法)随机访问
阅读全文
摘要:最近在看《wndows编程启示录》,这里面写到了很多windows用户界面设置时候的很多解决矛盾的艺术。其中看到几个比较好玩的东西给大家分享一下。最小化所有窗口”的快捷键是”windows+d“, 显示桌面"的快捷键是“windows+ m”取消所有最小化窗口的快捷键是”windows+shift+d“那么这两者之间的区别是什么呢?首先最小化所有窗口的原理就是相当于 每个窗口都点了一下最小化那个按钮,而显示桌面则是将最小化窗口以后更进了一步。在进行了最小化所有窗口以后,将桌面窗口上升到窗口堆栈的顶部,(topmost窗口还是会覆盖在桌面窗口的上面)。但是当你恢复到正常状态以后或者..
阅读全文

浙公网安备 33010602011771号