vc6怎么打开notepad的资源
时间 : 2023-05-31 15:56:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
VC6是一款非常经典的集成开发环境,它可以帮助开发者快速地开发各种类型的程序。其中,在VC6中打开notepad的资源也是很容易的。本文将通过以下步骤介绍如何在VC6中打开notepad的资源。
步骤一:打开VC6,并创建一个新的MFC程序。
首先,打开VC6并选择“新建”-->“MFC应用程序向导”来创建一个新的MFC程序。在创建向导中,填写“应用程序类型”和“应用程序选项”等信息,之后点击“完成”。在弹出的“新建应用程序类”对话框中,点击“添加”的按钮,在“添加类向导”中添加一个新的dlg对话框类。最后,点击“完成”。
步骤二:打开notepad的主程序。
在VC6的资源管理器窗口中,展开“资源文件(RC)”并双击“notepad.rc”文件。该文件包含了notepad的资源。在“应用程序类型”选项卡中,选择“不包含源代码、以文件形式包含”。然后,在“源代码”选项卡中,打开notepad的主程序,即“notepad.exe”。
步骤三:导入资源并调用notepad的主程序。
在VC6的资源文件编辑器中,将notepad的主程序拖到“对话框”设计器中,创建一个CStatic控件。将其属性设为“图像”,并选择notepad的主程序。随后,将“IDC_STATIC”重命名为“IDC_NOTEPAD_ICON”。
若想在对话框启动时显示notepad的图标,可在该对话框类的OnInitDialog()函数中加入以下代码:
CWnd* pWnd = GetDlgItem(IDC_NOTEPAD_ICON);
HBITMAP hBitmap = ::LoadBitmap(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME));
pWnd->SendMessage(STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);
注意,上述代码要依据IDC_NOTEPAD_ICON控件的实际ID进行调整。每次执行OnInitDialog()函数时,都会加载notepad的主程序并将其图标在对话框中展示出来。
总之,以上就是在VC6中打开notepad的资源的详细步骤。其中包括:创建一个新的MFC程序,打开notepad的主程序,导入资源并调用notepad的主程序。感谢您的阅读。
在 VC6 中打开记事本(Notepad)的资源的方法如下:
1. 在 VC6 中建立一个 MFC 对话框项目,命名为 NotepadProject。
2. 在资源视图中右键单击“Resource Files”文件夹,选择“Import…”。
3. 在导入资源对话框中选择 Notepad.exe 所在目录下的 notepad.exe 文件,点击“Open”按钮。
4. 在导入资源对话框中勾选“Dialog”,并选择 ID 为 32770 的对话框资源,并点击“Import”按钮。这个对话框资源是记事本主窗口的资源。
5. 在 VC6 的资源编辑器中,双击“IDD_DIALOG1”对话框资源,将其打开并修改为如下图所示:
![](https://i.imgur.com/mZZzSWP.png)
在对话框中添加了编辑框和按钮控件,用于显示文本和打开 Save As 对话框。
6. 双击“Save”按钮,将其添加自定义 Class 名称为“CNotepadProjectDlg”,并点击“OK”按钮。
7. 在 CNotepadProjectDlg 类中添加如下成员变量和成员函数:
private:
CString m_strText;
private:
void LoadNotepadResource();
void GetWindowText(HWND hWnd, CString& strText);
8. 在 CNotepadProjectDlg 类结束符号之前,添加如下代码:
void CNotepadProjectDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_NOTEPAD, m_strText);
}
BEGIN_MESSAGE_MAP(CNotepadProjectDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON_SAVE, &CNotepadProjectDlg::OnButtonSave)
ON_WM_CLOSE()
END_MESSAGE_MAP()
BOOL CNotepadProjectDlg::OnInitDialog()
{
CDialog::OnInitDialog();
LoadNotepadResource();
return TRUE;
}
void CNotepadProjectDlg::LoadNotepadResource()
{
HGLOBAL hGlobal = NULL;
HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(32770), RT_DIALOG);
if (hResource != NULL)
{
HMODULE hModule = LoadLibrary(L"notepad.exe");
if (hModule != NULL)
{
hGlobal = LoadResource(hModule, hResource);
if (hGlobal != NULL)
{
LPDLGTEMPLATE pDlgTemplate = (LPDLGTEMPLATE)LockResource(hGlobal);
if (pDlgTemplate != NULL)
{
::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
::CreateDialogIndirectParam(AfxGetApp()->m_pMainWnd->m_hWnd, pDlgTemplate, NULL, (DLGPROC)NULL, 0);
}
}
FreeLibrary(hModule);
}
}
if (hGlobal != NULL)
{
UnlockResource(hGlobal);
FreeResource(hGlobal);
}
}
void CNotepadProjectDlg::GetWindowText(HWND hWnd, CString& strText)
{
if (hWnd != NULL)
{
int nLength = ::GetWindowTextLength(hWnd) + 1;
if (nLength > 1)
{
TCHAR* pszText = new TCHAR[nLength];
::GetWindowText(hWnd, pszText, nLength);
strText = pszText;
delete[] pszText;
}
}
}
void CNotepadProjectDlg::OnButtonSave()
{
CFileDialog dlg(FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"Text Files (*.txt)|*.txt||", this);
if (dlg.DoModal() == IDOK)
{
CString strFilePath = dlg.GetPathName();
CFile file(strFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText);
CString strText;
GetWindowText(GetDlgItem(IDC_EDIT_NOTEPAD)->m_hWnd, strText);
file.Write(strText, strText.GetLength() * sizeof(TCHAR));
file.Close();
}
}
void CNotepadProjectDlg::OnClose()
{
GetWindowText(m_hWnd, m_strText);
CDialog::OnClose();
}
9. 在 NotepadProject 应用程序类的 InitInstance 函数中添加如下代码:
CNotepadProjectDlg dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
10. 编译并运行 NotepadProject 项目,可以看到如下效果:
![](https://i.imgur.com/T3rxJFF.png)
点击“File”菜单,然后点击“Save As...”菜单项,即可弹出“另存为”对话框,可输入文件名并将编辑框中的文本保存到指定文件中。
以上就是使用 VC6 打开记事本资源的方法。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章