`
txf2004
  • 浏览: 7000300 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Windows 程序设计3、4章笔记

 
阅读更多

#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#include "resource.h" //预编译我们的资源文件
#include "tchar.h"
LRESULT CALLBACK MyProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{ HWND hWnd ;
MSG msg ;
static TCHAR szAppName[] = TEXT ("NewWindow") ; //窗口类名
WNDCLASS cls ;
cls.cbClsExtra=0 ;
cls.cbWndExtra=0 ;
cls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH) ;
cls.hCursor=LoadCursorFromFile("resource\\xx.ani") ;
cls.hIcon=LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
cls.hInstance=hInstance ;
cls.lpfnWndProc=MyProc ;
cls.lpszClassName=szAppName;
cls.lpszMenuName=NULL;
cls.style=CS_HREDRAW|CS_VREDRAW| 0x00020000; //CS_DROPSHADOW 0x00020000在 vc6 以及以前的版本中没有定义 我们可以自定义 这个窗体有阴影
RegisterClass(&cls) ;
hWnd=CreateWindow("NewWindow","SDK_Window Demo",WS_TABSTOP|WS_HSCROLL|WS_VSCROLL|WS_SYSMENU ,200,200,500,400,NULL,NULL,hInstance,NULL) ;
ShowWindow(hWnd,SW_SHOWNORMAL) ;
UpdateWindow(hWnd) ;

while(GetMessage(&msg,NULL,0,0)) //获得消息 后面2个参数为0会接受任何 win32消息
{
TranslateMessage(&msg) ; //翻译消息
DispatchMessage(&msg) ;//分发消息
}

return 0;

}
LRESULT CALLBACK MyProc(
HWND hwnd,
UINT uMsg, //win32消息的类型
WPARAM wParam, //第一个附加参数
LPARAM lParam //第二个附加参数一般是值
)
{
switch (uMsg)
{
case WM_PAINT : //UpdateWindow函数的调用会进入这个消息响应
{
HDC dc ;
PAINTSTRUCT ps ;
dc=BeginPaint(hwnd,&ps) ;
SetTextAlign(dc,TA_LEFT|TA_TOP) ; //设置基点的位置 。。也就是坐标(0,0)
TextOut(dc,60,60,_T("GameWnd"),lstrlen(_T("GameWnd")));//include TCHAR.H Head File
EndPaint(hwnd,&ps) ;
return 0 ;
}
case WM_CREATE : //当窗体创建的时候 是 窗口过程接受的第一个消息
{
//SetWindowLong(hwnd,GWL_STYLE,(GetWindowLCong(hwnd,GWL_STYLE)&~WS_CAPTION)); //SetWindowLong 设置窗体的style
SetScrollRange(hwnd,SB_HORZ,0,100,FALSE) ; //SetScrollRange 设置 滚动条的范围 是min-max
SetScrollPos(hwnd,SB_HORZ,50,FALSE) ; // SetScrollPos设置滚动条的位置 是相对与 min-max中的位置 最后一个参数设置为false表示不需要重绘
//InvalidateRect会使客户区域变为 Invalid Area 从而向消息队列中加入 WM_PAINT 消息但始终合格消息的优先级较低 但是我们可以调用 UpdateWindow立即更新窗口
//也就是 说 在调用了 InvalidateRect 时候接着调用 UpdateWindow 才会立即重绘
//新的函数 GetScrollInfo 和 GetScrollInfo函数可以完成上述四个函数的功能具体应用 MSDN

return 0 ;
}
case WM_CHAR :
{
if('Q'==(char)wParam)
if(IDYES==MessageBox(hwnd,_T("是否要退出?"),_T("提示"),MB_YESNO) )
{
DestroyWindow(hwnd) ; //销毁窗体
}
return 0 ;
}
case WM_DESTROY:
{
PostQuitMessage(0); //向消息队列中发送一个退出消息
return 0;
}

}
return DefWindowProc(hwnd,uMsg,wParam,lParam) ; //返回缺省的窗口过程
}

分享到:
评论

相关推荐

    Windows程序设计笔记

    在Windows程序设计中,了解和掌握窗口的创建、显示、销毁是基础,这涉及到Windows API的使用。首先,创建主窗口需要通过`RegisterClass`函数为窗口注册一个类,定义窗口类的属性如风格、窗口过程等。接着,用`...

    Windows程序设计读书笔记(合集)

    《Windows程序设计读书笔记》是针对那些希望通过深入学习来掌握Windows平台下程序开发技术的开发者们的一份宝贵资源。这份笔记合集很可能包含了对Charles Petzold所著的经典书籍《Programming Windows》的详细解读和...

    windows程序设计笔记

    这份“windows程序设计笔记”很可能包含了作者在学习和实践中积累的丰富经验和心得,对于我们理解Windows API、进程与线程管理、内存管理、窗口和消息机制等方面的知识大有裨益。 Windows程序设计主要涉及以下几个...

    Windows程序设计笔记(1,2,3)

    《Windows程序设计》是Charles Petzold的经典之作,尽管出版于1999年,但至今仍然是新手学习Windows平台下C语言编程的首选教材。这本书深入浅出地讲解了如何利用Windows API函数来构建应用程序,尤其对于理解Windows...

    Windows环境MASN32汇编程序设计学习笔记

    Windows环境MASN32汇编程序设计学习笔记Windows环境MASN32汇编程序设计学习笔记Windows环境MASN32汇编程序设计学习笔记Windows环境MASN32汇编程序设计学习笔记Windows环境MASN32汇编程序设计学习笔记Windows环境MASN...

    windows环境MASM32汇编程序设计学习笔记

    《Windows环境下MASM32汇编程序设计学习笔记》是一份深入探讨在Windows操作系统中使用MASM32汇编语言进行程序开发的详实资料。MASM32是Microsoft汇编语言的一个版本,专为Windows平台设计,它提供了一套完整的开发...

    windows程序设计读书笔记一(窗口与消息)

    在Windows程序设计中,窗口和消息是核心概念,它们构成了应用程序与用户交互的基础。这篇读书笔记将深入探讨这两个主题。 首先,我们来了解窗口。在Windows操作系统中,窗口是用户界面的基本元素,它承载了应用程序...

    Windows程序设计第5版(高清PDF+美化版+WORD版)

    《Windows程序设计第5版》是一本深入探讨Windows操作系统下程序开发的经典著作,适用于程序员、计算机科学学生以及对Windows系统编程感兴趣的读者。该书详细介绍了如何利用Microsoft的API(应用程序接口)来创建高效...

    Visual C++程序设计学习笔记.rar

    《Visual C++程序设计学习笔记》是一份深入探讨C++编程在Microsoft Visual Studio环境下的实践指南。这份笔记涵盖了从基础知识到高级技术的广泛内容,旨在帮助读者熟练掌握Visual C++的使用,提升软件开发能力。 一...

    visual C++程序设计学习笔记随书源码(全2-12章)

    《Visual C++程序设计学习笔记随书源码》是一份宝贵的学习资源,涵盖了从第二章到第十二章的完整内容,由刘春辉和徐健飞两位专家编著,出版于电子工业出版社。这个压缩包包含了一系列与Visual C++编程相关的源代码,...

    《Python 3程序设计基础》读书笔记模板.pptx

    "Python 3程序设计基础读书笔记模板" Python 3程序设计基础是一门全面介绍Python 3编程的课程,涵盖了基础知识和应用领域两部分。基础部分涵盖了Python编程概述、基本数据类型、组合数据类型、输入输出文件、顺序...

    Visual C++ 程序设计学习笔记1~12章源代码

    《Visual C++ 程序设计学习笔记1~12章源代码》涵盖了广泛的编程概念和技术,这是一份深入理解Microsoft Visual C++编程环境的宝贵资料。这份笔记不仅包括了基础的C++语法和编程技巧,还涉及了高级主题,如多线程、...

    Windows程序设计第五版(DOC、PDF).rar

    《Windows程序设计》是计算机科学领域的一本经典著作,尤其对于深入理解Windows操作系统下的软件开发具有极高的价值。第五版的发布,不仅包含了前几版的精华,还可能加入了最新的技术发展和更新,使得这本书成为了...

    Visual C++程序设计学习笔记

    总的来说,《Visual C++程序设计学习笔记》将带领读者从零基础开始,逐步掌握Visual C++的编程技术,直至能够独立开发出功能完备、性能优良的Windows应用程序。这份笔记不仅是初学者的良师,也是经验丰富的开发者...

    VB程序设计第1章PPT教案学习.pptx

    《VB程序设计第1章学习概述》 VB(Visual Basic)是微软公司在1991年推出的基于BASIC语言的新型编程工具,它以其可视化、面向对象和事件驱动的特性,极大地简化了程序设计的过程。VB的发展历程见证了其从最初的2.0...

    Visual C++程序设计学习笔记(1-12 源码)

    本资源包含的是Visual C++程序设计的学习笔记,涵盖了从基础到进阶的12个章节的源代码,对于学习和理解C++编程,特别是使用Visual C++环境编程,具有极高的参考价值。 首先,我们来详细探讨一下Visual C++的关键...

    c#程序设计读书笔记

    这篇读书笔记将深入探讨C#程序设计的关键概念和重要特性,以帮助读者更好地理解和应用这种强大的语言。 一、基础语法 C#的基础语法与C++和Java有诸多相似之处,包括变量声明、数据类型(如int、float、bool等)、...

Global site tag (gtag.js) - Google Analytics