WEB开发网
开发学院软件开发VC 接触VC之一:WinSDK 阅读

接触VC之一:WinSDK

 2006-07-19 11:36:55 来源:WEB开发网   
核心提示:预设目录:第一部分:WinSDK第二部分:MFC类基础,C++程序编写规范介绍第三部分:MFC基于对话框程序第四部分:Dll动态链接库第五部分:COM组件基础第六部分:COM组件几个常用技术:IDispatch,可连接对象.第七部分:COM组件的应用,以及MFC的COM编写第一部分:WinSDK学习VC已近一年了,接触

预设目录:

第一部分:WinSDK

第二部分:MFC类基础,C++程序编写规范介绍

第三部分:MFC基于对话框程序

第四部分:Dll动态链接库

第五部分:COM组件基础

第六部分:COM组件几个常用技术:IDispatch,可连接对象.

第七部分:COM组件的应用,以及MFC的COM编写

第一部分:WinSDK

学习VC已近一年了,回顾我的学习历史真是相当的艰苦。既没有老师教,图书馆里也没有好书可看。为了买到好书,身上的银子几近花光,不得不过节衣缩食的生活。近些日来动起自己写写什么的打算,一来可以对自己的学习状况进行总结。二来,请教高手,可以帮忙指出错漏之处。三来,说不定会对初学者们有所帮助, 最起码也可以练练文笔。

OK。谈正事喽。首先MFC(Microsoft Foundation Class)是一种用来构建Win32程序的类库,但究其根本的话,是基于Windows老祖宗—Windows SDK,其历史可以追溯到Window 3.x时代。它整个构架是由C来编写的。更重要的是它的程序结构至今还是Win32程序的根本。因此,在学习VC的过程中,理解其程序结构是编写Win32程序的根本。

下面,就是一个WinSDK程序的示例(摘自侯先生的《深入浅出MFC》,在侯捷站点上有其此书的繁体电子版)

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
  MSG msg;
  if (!hPrevInstance)
  if (!InitApplication(hInstance))
    return (FALSE)
  if (!InitInstance(hInstance, nCmdShow))
    return (FALSE);
  while (GetMessage(&msg, NULL, 0, 0))
  {
    TranslateMessage(&msg);
    DispatchMessage (&msg);
  }
  return (msg.wParam);
}
BOOL InitApplication(HINSTANCE hInstance)
{
  wc.style = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc = (WNDPROC)WndProc;
  wc.cbClsExtra = 0;
  wc.cbWndExtra = 0;
  wc.hInstance = hInstance;
  wc.hIcon = LoadIcon(hInstance, "jjhouricon");
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = GetStockObject(WHITE_BRUSH);
  wc.lpszMenuName = "GenericMenu";
  wc.lpszClassName = "MyWindow";
  return (RegisterClass(&wc));
}
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
  hWnd = CreateWindow("MyWindow","This is Windows SDK",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  NULL,
  NULL,
  hInstance,
  NULL);
  if (hWnd == NULL)
    return (FALSE);
  ShowWindow(hWnd, nCmdShow);
  UpdateWindow(hWnd);
  return (TRUE);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    default:
      return DefWindowPro(hWnd, message, wParam, lParam);
}
  return 0;
}

首先,在C语言中的入口函数是main函数,在Win32程序中则是WinMain。其原型是

1 2 3  下一页

Tags:接触 VC 之一

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接