我想學vc,但不想學MFC,想學SDK編程,請問各位大神怎么辦,求指點一二。
uj5u.com熱心網友回復:
SDK純API方式撰寫GUI程式已經過時了,效率太低,了解一下原理就可以了,主要是訊息機制。——————————
圖形用戶界面(GUI)編程可以學習C++ Builder,架構先進(和C#一樣拖控制元件),入門比較容易。
C++ Builder的較新版本——RAD Studio XE3以上版本添加對iOS和Android的支持工具包,讓開發者撰寫的Delphi/C++應用可以同時在Windows、OS X、iOS和Android平臺上運行。現在最新版本是RAD Studio 10.2。
僅供參考:
初學者學習C++ Builder第一個程式(模擬聊天室),經典!
http://blog.163.com/tab_98/blog/static/11924097201693033057497/
C++ Builder繪圖示例(模擬時鐘)
http://blog.163.com/tab_98/blog/static/11924097201611324819376/
從C語言的選單界面管理系統到C++ Builder的圖形用戶界面,一個簡單的電話簿Demo例子
http://blog.163.com/tab_98/blog/static/1192409720158673337998/
書籍推薦:
《C++Builder 6程式設計教程(第二版)》 (陸衛忠,劉文亮 等編著 /2011-04-01 /科學出版社)(當當網)
《C++Builder 6編程實體精解》(趙明現),PDF,是數字版的,非掃描版的,里面還有一個俄羅斯方塊游戲的完整實作。
《精彩C++Builder 6程式設計》(臺灣 吳逸賢),里面有10幾個簡單小游戲的實作,可以自己看懂以后再重寫,才是自己掌握的。
《C++ Builder 5高級編程實體精解》(劉濱 編著)都是較大的實用的程式。
uj5u.com熱心網友回復:
《Windows程式設計》第五版好像是1998年出版的吧
uj5u.com熱心網友回復:
我覺得Windows程式設計SDK方式在16位的Windows 3.1時就已經成熟了,Win95時變成32位的API,2000、XP時API有所增加而已。uj5u.com熱心網友回復:
古老的16位的Windows程式,比如一些小游戲,在32位的Win7上也是能運行的,因為SDK方式撰寫的程式是兼容的,本質上因為API是兼容的。uj5u.com熱心網友回復:
如果C/C++基礎過關,你想就學。如果你C/C++還處于入門,先把標準C和C++學好uj5u.com熱心網友回復:
先從基礎入門吧,一點點來,先把基礎的C和c++學號,再去想其他的,沒準你就感興趣了呢uj5u.com熱心網友回復:
純windows sdk編程,程式稍大一點就能寫死你,一點點功能代碼淹沒在無盡的視窗程序之中。uj5u.com熱心網友回復:
僅供參考:#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
PAINTSTRUCT ps;
HDC hdc;
HFONT hfont,ohfont;
RECT r;
COLORREF oc;
switch(message) {
case WM_CLOSE://按Alt+F4退出
PostQuitMessage(0);
break;
case WM_PAINT:
BeginPaint(hWnd, &ps);
hdc = ps.hdc; // the device context to draw in
GetClientRect(hWnd, &r); // Obtain the window's client rectangle
hfont = CreateFont(200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "宋體");
ohfont=(HFONT)SelectObject(hdc,hfont);
oc=SetTextColor(hdc,0x00C080FF);
SetBkMode(hdc, TRANSPARENT);
TextOut(hdc,r.left+r.right/2-600, r.top+r.bottom/2-100,"最短畫圖程式",12);
SelectObject(hdc,ohfont);
SetTextColor(hdc,oc);
DeleteObject(hfont);
EndPaint(hWnd, &ps);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
MSG msg = {0};
WNDCLASS wc = {0};
HBRUSH hbrh;
hbrh=CreateSolidBrush(0x00000000);
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hbrBackground = hbrh;
wc.lpszClassName = "minwindowsapp";
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
if (0==RegisterClass(&wc)) return 1;
if (NULL==CreateWindow(wc.lpszClassName,
"Minimal Windows Application",
WS_POPUP|WS_VISIBLE,
0,
0,
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
0,
0,
hInstance,
NULL))
return 2;
while( GetMessage( &msg, NULL, 0, 0 ) > 0 ) {
DispatchMessage( &msg );
}
DeleteObject(hbrh);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/78388.html
標籤:基礎類
上一篇:幫幫忙。
下一篇:關于mfc連續畫圓的代碼
