惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 饽饽

C语言指针的用法 CRC 循环冗余校验码 (VC编程) 无线网卡或笔记本找不到网络的一个原因 (one reason of your laptop cannot find wireless network) 电脑能够上QQ,可以ping IP,玩网络游戏,就是不能上网,收发电子邮件的解决办法 有关学校的打油诗 CMPP2.0 协议SP端的·NET开发 C++中的虚函数(virtual function) - 饽饽 - 博客园 MIMO的文章 VC++调用其它语言编写的程序 - 饽饽 - 博客园 VC++调用其它程序2 - 饽饽 - 博客园 VC MFC基本控件的使用 VC基础教程 基于WINSOCK控件的VC网络通讯程序 VISCAL C++下WINSOCK CONTROL类(ACTIVEX)的使用 用Winsock实现语音全双工通信使用 socket编程原理 VC常用技巧集锦 windows网络编程 用Winsock控件实现点对点通信
Vc编程基础
饽饽 · 2005-05-24 · via 博客园 - 饽饽

作者envily                         转自研学论坛

相信又很多徘徊在VC或者MFC编程的朋友,有人认为它们实在太难了,不如VB好学
,而且VB的界面做的也很好。。。但是,我想这是那些逃避困难的人的借口,其实
VC的学习,刚开始可能很难,但只要你能挺过去,很快你就会发现VC也没有那么难,
而且VC强大的功能 会让你 对它 爱不释手。。。好了,就说这些吧!下面开始介绍程序:

相信又很多徘徊在VC或者MFC编程的朋友,有人认为它们实在太难了,不如VB好学
,而且VB的界面做的也很好。。。但是,我想这是那些逃避困难的人的借口,其实
VC的学习,刚开始可能很难,但只要你能挺过去,很快你就会发现VC也没有那么难,
而且VC强大的功能 会让你 对它 爱不释手。。。好了,就说这些吧!下面开始介绍程序:

很多人可能喜欢用MFC,因为它为我们建好了框架,但这些对初学者来说恰恰是很重要得,
我们只有先了解了 它的框架,才能嘎÷更好的掌握它。首先,我有一个忠告;如果你没有学过
c++,你确实应该先去看一下C++,也许你不必要去深入的理解它,但至少你应该了解它。

下面这个程序 将有助你理解 Windows编程的结构。Windows编程由两个主要函数:主函数和窗口函数。

//设计Windows程序必须包含的头文件

#include <afxwin.h>

//定义全局变量--------------------------

HINSTANCE hInstance;
HWND hWnd;
MSG msg;
char lpszClassname[]="窗口";
char *ShowText;

//定义函数-----------------------------

ATOM MyRegisterClass(HINSTANCE hInstance); //注册窗口类函数
BOOL Create(HINSTANCE,int); //程序实例 初始化 函数
int Run(); //消息循环 函数
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 窗口函数

//主函数-----------------------------

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
           LPSTR lpCmdLine,int nCmdShow)
{
  MyRegisterClass(hInstance); //在主函数中定义窗口类函数
  Create(hInstance,nCmdShow); //创建窗口
  ShowWindow(hWnd,nCmdShow); //显示窗口
  UpdateWindow(hWnd); //更新屏幕显示
  return Run(); //消息循环
}

//注册窗口类的 函数实现----------------------

ATOM MyRegisterClass(HINSTANCE hInstance)
{
  WNDCLASS wc;
  wc.style=0;
  wc.lpfnWndProc=WndProc;
  wc.cbClsExtra=0;
  wc.cbWndExtra=0;
  wc.hInstance=hInstance;
  wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  wc.hCursor=LoadCursor(NULL,IDC_ARROW);
  wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  wc.lpszMenuName=NULL;
  wc.lpszClassName=lpszClassname;
  return RegisterClass(&wc);
}

//创建窗口函数 的实现-----------------------

BOOL Create(HINSTANCE hInstance,int nCmdShow)
{
  hWnd=CreateWindow(lpszClassname,"Windows",WS_OVERLAPPEDWINDOW,
     10,10,800,600,NULL,NULL,hInstance,NULL);
  return TRUE;
}

//消息循环函数 的实现-----------------------

int Run()
{
  while(GetMessage(&msg,NULL,0,0))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return msg.wParam;
}

//窗口函数 的实现---------------------------

LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
  PAINTSTRUCT ps;
  HDC hdc;
  switch(message)
  {
  case WM_LBUTTONDOWN:
    ShowText="Hello!";
    InvalidateRect(hWnd,NULL,1);
    break;
  case WM_PAINT:
    hdc=BeginPaint(hWnd,&ps);
    TextOut(hdc,50,50,ShowText,6);
    EndPaint(hWnd,&ps);
    break;
  case WM_DESTROY:
    PostQuitMessage(0);
    break;
  default:
    return DefWindowProc(hWnd,message,wParam,lParam);
  }
  return 0;
}

// ----------------------------- The end of the program -----------------------------

envily edited on 2005-04-23 12:38

posted on 2005-05-24 22:44  饽饽  阅读(5530)  评论()    收藏  举报