目前共有7篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:马新简体▼
 
點擊 回復
363 6
其实,无论是什么编程语言,要想制作Windows窗口程序
一派掌門 二十級
1樓 發表于:2015-4-4 11:10
都是要想办法调用Windows API
一派掌門 二十級
2樓 發表于:2015-4-4 11:11
而MFC,Windows Forms,还有QT什么的,都是框架而已。
 
一派掌門 二十級
3樓 發表于:2015-4-4 15:13
在Windows系统中,C++调用Windows API显示窗口的程序很复杂。需要创建窗口类,注册窗口类,通知Windows显示窗口。而在Linux系统下,只需要调用几个GTK函数就能显示窗口了,不到10行代码。
 
一派掌門 二十級
4樓 發表于:2015-4-4 15:17
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *label;
    gtk_init (&argc, &argv);
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Hello World");
    g_signal_connect(window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    label = gtk_label_new ("Hello, World");
    gtk_container_add (GTK_CONTAINER (window), label);
    gtk_widget_show_all (window);
    gtk_main ();
    return 0;
}
这是C语言调用gtk函数库显示窗口的代码。这个只能在Linux下运行。
代码行数比调用Windows API的少了几十行呢
 
一派掌門 二十級
5樓 發表于:2015-4-5 17:58
可以写一个C++程序调用MsgBox函数,代码可以只有十几行
 
一派掌門 二十級
6樓 發表于:2015-10-30 21:38
在Windows XP下,用Visual C++ 6.0打开记事本notepad.exe,或者画图mspaint.exe,或者资源管理器explorer.exe,都可以看到rc资源文件,里面有24资源(用于启用XP风格),以及各种对话框和图标。打开自己写的MFC程序的exe文件也是同样的效果。但是用VC++6打开其他语言写的程序,比如C#的Windows Forms,VB生成的程序就不能看到资源文件,甚至根本就打不开。而且VB6生成的exe文件很难拥有XP风格的控件。
其实,无论用什么编程语言编写Windows窗口程序,编译后都要生成机器代码,即便是C++也是这样,MFC也是这样。这些机器代码都要调用Windows API来创建、注册并显示窗口。这些窗口以及其中的控件可能是直接读取的rc资源文件,也可能是编写的代码动态创建了这些控件(也就是不用rc资源文件)。因此,我觉得,用其他语言编写的程序,肯定没有用到rc文件,而是控件是由生成的机器代码在程序运行时通知Windows动态创建的,所以才会出现用VC++6打开exe文件后无法读取rc资源的现象。
 
一派掌門 二十級
7樓 發表于:2015-10-30 21:52

这是用VC++6打开Windows XP自带的记事本exe程序的效果。图中画红圈的地方是24资源,该资源用于启用程序界面的XP控件风格。
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:363 回複數:6
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2015-10-30 21:52
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用共享創意姓名標示-相同方式分享 3.0 Unported許可協議進行許可。