user-0 提问: 使用c语言如何做出能在win上跑的界面程序呢？

回复:
user: user-1
content: 用C的话，应该是windows api，用C++的话，MFC或者别的。 建议用C++吧，开发界面还是面向对象写起来快

user: user-2
content: 譚的書籍只是學習 C 的語法和標準 C 庫函數。實際的開發都是面向平台，比如你要做窗口就要學習 Windows 編程，調用 Windows API 可以創建窗口，對話框等。推薦初學者使用 Pelles C for Windows，其自帶的嚮導可以生成一個基於對話框的 Windows 程序模版，還帶有對話框編輯器，支持 C11、變長數組等，安裝包僅 10M 左右。 官網有兩個：http://www.christian-heffner.de/、http://www.pellesc.de/

user: user-3
content: 如果只是想用C写出一些图形界面的话，在VC里比较快捷的方法是下一个easyx库，里面有简单的图形函数实现，如果要深入研究界面设计的话就要学学windows程序设计，在学学MFC框架

user: user-4
content: 慢慢来 不要着急  我刚开始学的时候也有你这些困惑， 嗯 Window 这些界面很大都是依靠微软的底层来绘制的 普通学的C就是来将逻辑联系起来

user: user-5
content: 楼主如果只是兴趣的话  就请无视我下面的话：  只看谭浩强的书是远远不够的  他的书只能作为一种入门书籍看  你看完了  就可以算是一条腿迈进了编程的门槛  强烈推荐你看 c primer plus  这本书   你需要花大概半年到一年的时间去学习这本书和做一些练习题 如果想学c++的话  还有 c++ primer plus 和 c++ primer 这两本  先看第一本 再看第二本  总之，看你的描述，我相信你的基础是很不扎实的   在这种情况下想继续往深的地方走是很危险的  会遇到很多难以想象的困难  编程这个行业，是需要一些耐心的  一口吃不成胖子的 你需要长期在黑屏上看自己的程序的结果  反复琢磨和思索语法和一些编程领域的潜规则等等  等你把这些基础都打好了  再谈图形界面化编程  如果你实在想满足下你的好奇心  我可以告诉你   程序员所能接触到的图形界面程序  是这样的： 比如，我在这里想创建个按钮（button）  所以就会写：Button b("OK"); 诸如这样的代码  但是为什么这个代码就能显示出一个按钮  这是图形库的开发人员做的事情  我们根本不关心  也不可能去关心------重复前人的工作是愚蠢的，除非我们也在开发这样的库 对于程序员而言    声明定义一个按钮 和 声明定义一个int  毫无差别  但是，后者却更直接更简单   你现在需要做的 就是把后者学好 基础打好  才能去接触前者

user: user-6
content: #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(240, 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-720, r.top+r.bottom/2-120,"最短画图程序",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( FAILED(RegisterClass(&wc)) ) return 1;      if(FAILED(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; }

user: user-7
content: 我觉的可以学学qt么，虽然是c++的

user: user-8
content: 有很多 win:MFC SDK unix/linux:GTK Qt ncursor库（终端图形库） Turbo C里提供了graphics.h库 还有很多三方库，可以google瞅瞅 建议还是以算法位主，界面虽然做起来有成就感，但是建立在娴熟的算法基础上的！先打基础，学数据结构和算法

user: user-9
content: 学习图形界面开发，需要学习不同平台下的GDI开发，比如楼上各位大神说的Windows下的MFC，还有Linux下的GTK之类的。

user: user-10
content: 楼主是不是想说，怎么用c语言做项目？

user: user-10
content: [quote=引用 13 楼 cdfc123 的回复:]  我的意思是不知道怎么用c语言做程序。。。[/quote楼主是不是想说，怎么用c语言做项目？

user: user-11
content: 只有C语言基础还不行，还要会WINDOWS API,犹其是图形界面方面的API，这样才能做界面

user: user-12
content: 主要就是一些windows api，或者经过封装的mfc以及dui,qt等了

user: user-13
content: windows程序设计、MFC深入浅出

user: user-14
content: window程序设计 这本书还是不错的啊

user: user-6
content: 下载编译链接调试eMule源代码。

user: user-15
content: 因为这刚好是我最近在研究的问题我也回答一下。你的意思应该是c的书本里头没有做图像的函数吧，我说一下我学到的。在c或c++的教科书乐透没有提到做界面的函数或api，实际上他们标准里头根本就没有定义相关内容！画图（画界面）呢其实不是语言层面的东西，而是硬件层面（由操作系统实现）东西。说完这些，估计你就要泄气，我说一点让你看到一点希望的话，其实你要做界面完全可以调用系统api（在Windows里头是Windows api或者mfc也可以），逻辑处理部分再用具体的语言代码。

user: user-16
content: 语言吗，光看书效果是不明显的，还是得多看例子，多写...  网上下点源码，不懂自己查查，终归就会了...

user: user-17
content: 表示从未用过c做界面程序

user: user-18
content: 学算法还是学界面，这是一个问题