我正在将C ++ Builder程序迁移到Visual Studio 2013 C ++ / Win32 / Win32项目。
但是,在创建新项目(C ++ / Win32 / Win32项目)之后,我可能会尝试查看/编辑Visual Studio创建项目时自动创建的主窗体。我知道如何在C#,C ++ Builder和Delphi中查看/编辑表单,但我没有看到如何查看表单,以便我可以在VS 2013中为C ++ Windows应用程序添加它。
我不懂的是什么?什么摇滚是IDE中隐藏的主要形式?
我知道表单在那里,有一个简单的菜单和一个关于框,因为它是在运行新创建的项目/程序时显示的。
表单我指的是新创建的应用程序的主窗口。
答案 0 :(得分:6)
听起来像你创建了一个直接的Win32项目(非MFC)。在这种情况下,没有像您习惯的表单设计师。很多是由代码创建的。
你会找到类似的东西:
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
打开资源文件,Win32Project1.rc,然后打开Dialog子文件夹,您将看到一个对话框设计器。除此之外,您无法像C ++ Builder允许的那样找到可编辑的表单。乍一看,你会认为你有一个表单设计师,但很快你就会发现它很缺乏。设计复杂的UI需要更多。
坏消息,如果你来自C ++ Builder背景,你会发现Visual C ++不是RAD / WYSIWIG。有几种方法可以做到这一点,并非所有方法都涉及向导的设计时间。许多传统的Visual C ++编程动态地创建UI。
如果你想在Visual Studio中使用真正的RAD,你需要转移到C#/ .NET和Winforms或WPF。
如果您坚持使用C ++,我建议您重新创建项目并选择MFC选项,或者查看Qt或其他第三方UI框架。 MFC(Microsoft基础类)和MFC项目向导将为您提供更多可供选择的控件,以及通过帮助您创建具有单/多文档界面等的应用程序框架的更多启动。
答案 1 :(得分:3)
“Winforms”应用程序和标准Visual C ++ Windows应用程序之间存在一个重大的范例变化:
Winforms应用程序使用托管代码,可以是C#,VB或C ++ / CLI。
在Winforms中,程序员不必知道用于编写表单,控件和事件代码的Windows消息泵。
Visual C ++应用程序通常不使用托管代码,这些程序在没有.Net框架的情况下运行。
如果需要,可以在Visual C ++项目中使用Winforms,但该操作会将项目转换为托管代码项目(C ++ / CLI)。
Visual C ++使用资源文件存储表单的布局,而winforms应用程序使用设计器类(例如,myForm.designer.cs)
不幸的是,Visual Studio中没有可用的编辑器来编辑主窗口。你必须使用代码来做到这一点。 在项目中调试此方法以查看Windows消息系统的工作方式。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: *****************Add any drawing code here...*****************
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
答案 2 :(得分:1)
打开资源文件,您可以在其中编辑" about框" &安培;菜单项。该窗口是使用API CreateWindow&创建的。传递给函数的参数定义了窗口的视图。在win32中,只能在资源文件中编辑对话框,而窗口视图需要在win32消息中编写代码,即WM_PAINT,以根据您的要求绘制窗口。如果您正在寻找类似于界面的表单窗口,则可以在winmain&中调用dialogbox api。删除窗口创建的所有代码。这将更容易添加按钮,列表和&其他控件。