Day 4:MSDN没有内容解决方法&VS第一个Windows程序代码分析
2016-08-08 11:27
471 查看
前一阵子遇到MSDN没有内容的情况自己找到了探索方法。
下载的是MSDN离线版,但是不知道这时候是离线的。
点击 联机 -》点搜索框边上的搜索
出现以下界面
点击添加 就下载到想要的文档了。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
下面是孙鑫教程中第一个程序的代码,纯手打,检查时发现错误都修改了。
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WinSunProc;
wndcls.lpszClassName = "sunxin2006";
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);
HWND hwnd;
hwmd = CreateWindow("sunxin2006", "123", WS_OVERLAPPEDWINDOW, 0, 0, 600, 400, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar, "char code is %d", wParam);
MessageBox(hwnd, szChar, "char", 0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd; "mouse clicked", "message", 0);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc, 0, 50, "程序员之家", strlen("程序员之家"));
ReleaseDC(hwnd, hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(hwnd, &ps);
TextOut(hDC, 0, 0, "123", strlen("123"));
EndPaint(hwnd, &ps);
break;
case WM_CLOSE:
if (IDYES == MessageBox(hwnd, "是否真的结束?","message", MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
运行后出现以下界面
正在检查相关问题。
下载的是MSDN离线版,但是不知道这时候是离线的。
点击 联机 -》点搜索框边上的搜索
出现以下界面
点击添加 就下载到想要的文档了。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
下面是孙鑫教程中第一个程序的代码,纯手打,检查时发现错误都修改了。
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WinSunProc;
wndcls.lpszClassName = "sunxin2006";
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);
HWND hwnd;
hwmd = CreateWindow("sunxin2006", "123", WS_OVERLAPPEDWINDOW, 0, 0, 600, 400, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar, "char code is %d", wParam);
MessageBox(hwnd, szChar, "char", 0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd; "mouse clicked", "message", 0);
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc, 0, 50, "程序员之家", strlen("程序员之家"));
ReleaseDC(hwnd, hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(hwnd, &ps);
TextOut(hDC, 0, 0, "123", strlen("123"));
EndPaint(hwnd, &ps);
break;
case WM_CLOSE:
if (IDYES == MessageBox(hwnd, "是否真的结束?","message", MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
运行后出现以下界面
正在检查相关问题。
相关文章推荐
- VS2005运行程序时出现“没有找到MSVCP80D.dll"错误的解决方法
- VS使用进程调试出现“没有正确安装调试器。请运行安装程序安装或修复调试器”的错误,解决方法。
- VS2005运行程序时出现“没有找到MSVCP80D.dll"错误的解决方法
- android studio 使用gradle compile' xxxx' 没有成功加载的程序解决方法
- windows8安装VC++6.0, 弹出"没有发现Acme安装程序",解决方法
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 使用vs的性能分析asp.net程序时报错的解决方法
- VS2005运行程序时出现“没有找到MSVCP80D.dll"错误的解决方法 收
- 安装vc++或VB的时候,弹出"没有发现Acme安装程序",解决方法
- 解决unix网络编程(第三版)第一个程序connect dennied.问题&Open 'daytiime' service
- (QT Windows)没有找到mingwm10.dll,因此这个程序未能启动。之解决方法...
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 使用vs的性能分析asp.net程序时报错的解决方法 (转载)
- VS 2005 编译的程序不能运行的几个解决方法
- VS 2003使用第三方程序启动不能Debug的解决方法
- asp.net程序 用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败解决两个方法
- "aspnet_merge.exe”已退出,代码为1的错误的解决方法
- vs 2005调试程序是出现无法在web服务器上启动调试,调试失败的解决方法。
- VS 2005 编译的程序不能运行的几个解决方法
- "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误"的解决方法