21xrx.com
2024-12-23 02:58:48 Monday
登录
文章检索 我的文章 写文章
VC++6.0 奇妙代码分享
2023-06-27 04:26:57 深夜i     --     --
VC++ 0 奇妙代码 分享

VC++6.0作为一款经典的编程环境,其广泛受到程序员们的喜爱,因为它除了具备良好的稳定性外还具备了强大的功能和灵活的扩展性。在这篇文章中,让我们来分享一些VC++6.0的奇妙代码。

1. 在应用程序启动时自动运行一个函数

可以通过在InitInstance()函数中加入自定义的函数调用实现,如下所示:


BOOL CMyApp::InitInstance()

{

  // nCmdShow为启动时窗口的状态,指定为SW_HIDE即为隐藏

  m_pMainWnd = new CMainFrame;

  m_pMainWnd->ShowWindow(SW_HIDE);

  MyCustomFunction();

  return TRUE;

}

void MyCustomFunction()

  // 自定义的函数体内容

2. 在资源文件中插入二进制文件

可以通过右键点击资源视图中的新建资源,选择Import,然后选择要插入的二进制文件,最后选择Binary,就可以将该二进制文件加入到资源文件中。

在代码中,可以通过以下方式访问该资源:


int nLength = 0;

char* pBuffer = NULL;

// 加载资源

HRSRC hResource = FindResource(NULL, MAKEINTRESOURCE(IDR_BINARY1), "BINARY");

if (hResource == NULL)

  return;

// 获得资源大小

nLength = SizeofResource(NULL, hResource);

// 加载资源到内存

HGLOBAL hResourceLoaded = LoadResource(NULL, hResource);

if (hResourceLoaded == NULL)

  return;

// 锁定资源指针

pBuffer = (char*)LockResource(hResourceLoaded);

if (pBuffer == NULL)

  return;

// 使用资源

// ...

// 释放资源

FreeResource(hResourceLoaded);

3. 利用CPropertySheet和CPropertyPage创建设置对话框

可以通过以下代码实现:


class CMySettingsSheet : public CPropertySheet

{

public:

  CMySettingsSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);

  CMySettingsSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);

  virtual ~CMySettingsSheet();

protected:

  CMySettingsPage1 m_page1;

  CMySettingsPage2 m_page2;

  DECLARE_MESSAGE_MAP()

};

CMySettingsSheet::CMySettingsSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)

  : CPropertySheet(nIDCaption, pParentWnd, iSelectPage)

{

  AddPage(&m_page1);

  AddPage(&m_page2);

}

CMySettingsSheet::CMySettingsSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)

  : CPropertySheet(pszCaption, pParentWnd, iSelectPage)

{

  AddPage(&m_page1);

  AddPage(&m_page2);

}

CMySettingsSheet::~CMySettingsSheet()

BEGIN_MESSAGE_MAP(CMySettingsSheet, CPropertySheet)

END_MESSAGE_MAP()

class CMySettingsPage1 : public CPropertyPage

{

public:

  CMySettingsPage1();

  ~CMySettingsPage1();

protected:

  virtual BOOL OnInitDialog();

  virtual void DoDataExchange(CDataExchange* pDX);

  virtual BOOL OnApply();

  virtual BOOL OnSetActive();

  DECLARE_MESSAGE_MAP()

};

CMySettingsPage1::CMySettingsPage1()

  : CPropertyPage(CMySettingsPage1::IDD)

CMySettingsPage1::~CMySettingsPage1()

BOOL CMySettingsPage1::OnInitDialog()

{

  CPropertyPage::OnInitDialog();

  return TRUE;

}

void CMySettingsPage1::DoDataExchange(CDataExchange* pDX)

{

  CPropertyPage::DoDataExchange(pDX);

}

BOOL CMySettingsPage1::OnApply()

  return TRUE;

BOOL CMySettingsPage1::OnSetActive()

{

  return CPropertyPage::OnSetActive();

}

BEGIN_MESSAGE_MAP(CMySettingsPage1, CPropertyPage)

END_MESSAGE_MAP()

class CMySettingsPage2 : public CPropertyPage

{

public:

  CMySettingsPage2();

  ~CMySettingsPage2();

protected:

  virtual BOOL OnInitDialog();

  virtual void DoDataExchange(CDataExchange* pDX);

  virtual BOOL OnApply();

  virtual BOOL OnSetActive();

  DECLARE_MESSAGE_MAP()

};

CMySettingsPage2::CMySettingsPage2()

  : CPropertyPage(CMySettingsPage2::IDD)

CMySettingsPage2::~CMySettingsPage2()

BOOL CMySettingsPage2::OnInitDialog()

{

  CPropertyPage::OnInitDialog();

  return TRUE;

}

void CMySettingsPage2::DoDataExchange(CDataExchange* pDX)

{

  CPropertyPage::DoDataExchange(pDX);

}

BOOL CMySettingsPage2::OnApply()

  return TRUE;

BOOL CMySettingsPage2::OnSetActive()

{

  return CPropertyPage::OnSetActive();

}

BEGIN_MESSAGE_MAP(CMySettingsPage2, CPropertyPage)

END_MESSAGE_MAP()

// 创建设置对话框

CMySettingsSheet dlg(_T("Settings"));

dlg.DoModal();

以上三个VC++6.0奇妙代码,或许能够帮助你更好地使用这款经典编程环境。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复