如何在vc++6.0中引用bcgcontrolbar控件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vc++6.0中引用bcgcontrolbar控件?相关的知识,希望对你有一定的参考价值。

要先将工程修改为bcg工程,才可以使用bcgcontrolbar,具体方法见如下资料:

Add BCGCBPro directory to INCLUDE path
Make sure, that you call AfxOleInit() in your application InitInstance()
Add the following include to the stdafx.h file:
#include "BCGCBProInc.h"

Add CBCGPWorkspace-derivation to your application class:
class CMyApp : public CWinApp,
public CBCGPWorkspace

First, you need to define where your customization data will be saved in the registry and which optional customization features (mouse, keyboard, context menus) will be required. To do it, in CMyApp::InitInstance set registry entry and initialize customization managers:
SetRegistryBase (_T("Settings"));

// Initialize customization managers:
InitMouseManager();
InitContextMenuManager();
InitKeyboardManager();

If you've decided to use either mouse or context menus customization, you need to "attach" a required views to the mouse customization manager and initialize context menus. Override CBCGPWorkspace::PreLoadState method:
class CMyApp ....

...
virtual void PreLoadState();
...
;

void CMyApp::PreLoadState()

// Associate mouse event with specific view(s):
GetMouseManager()->AddView (iIdTestView, _T("Test view"), IDR_VIEW);

// Initialize context menus:
GetContextMenuManager()->AddMenu (_T("Test menu"), idMenu);


Change CMDIFrameWnd to CBCGPMDIFrameWnd both in mainframe.h and mainframe.cpp files (in case of SDI application change CFrameWnd to CBCGPFrameWnd)
Change CMDIChildWnd to CBCGPMDIChildWnd
Change CToolbar to CBCGPToolBar and add an embedded menu bar object into your CMainFrame class:
CBCGPMenuBar m_wndMenuBar; // New menu bar
CBCGToolBar m_wndToolBar; // Application toolbar

In the CMainFrame::OnCreate() method add the following lines to enable the menu bar functionality:
// Create menu bar (replaces the standard menu):
if (!m_wndMenuBar.Create (this))

TRACE0("Failed to create menubar\n");
return -1; // fail to create

m_wndMenuBar.SetBarStyle (m_wndMenuBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

To enable menu bar docking, add the following code:
m_wndMenuBar.EnableDocking (CBRS_ALIGN_ANY);
DockControlBar (&m_wndMenuBar);
参考技术A 没用过这个控件,一般都是用caohou83说的方法。 参考技术B 便宜出售bcgcontrolbar序列号,我自己买的,现在转.net了 参考技术C 我在一个叫慧都控件网上看见过一篇这个具体步骤的文章,感兴趣的可以去看一下 参考技术D 楼上的对啊

VC++如何检测文件是不是存在

Delphi 里面 uses了 SysUtils 以后

if FileExists(text1.Text) then
begin
//
end;

这段代码在 VC++里面怎么实现? 如果要引用什么头文件,应该引用什么? 在哪里引用??

VC++中检测文件是否存在有很多种方法,比较通用的是GetFileAttributes函数,在控制台下增加#include<windows.h>,MFC和其它窗口程序下可以直接使用:

if(GetFileAttributes(FileName)<0)//==-1

    //文件不存在!

else
    //存在

这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为FILE_ATTRIBUTE_DIRECTORY),不会因为文件访问权限等问题造成误判。


此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:

    CFile::Open或OpenFile,无法以读取方式打开

    _access函数,通过判断文件是否能够访问,返回文件是否存在

    CFileFind类或FindFirstFile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。

    使用Shell函数SHGetFileInfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。

参考技术A VC++中检测文件是否存在有很多种方法,比较通用的是GetFileAttributes函数,在控制台下增加#include<windows.h>,MFC和其它窗口程序下可以直接使用:
if(GetFileAttributes(FileName)<0)//==-1

//文件不存在!

else
//存在这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为FILE_ATTRIBUTE_DIRECTORY),不会因为文件访问权限等问题造成误判。
此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:
1.
CFile::Open或OpenFile,无法以读取方式打开
2.
_access函数,通过判断文件是否能够访问,返回文件是否存在
3.
CFileFind类或FindFirstFile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。
4.
使用Shell函数SHGetFileInfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。
参考技术B vc++中检测文件是否存在有很多种方法,比较通用的是getfileattributes函数,在控制台下增加#include
,mfc和其它窗口程序下可以直接使用:
if(getfileattributes(filename)<0)//==-1

//文件不存在!

else
//存在这种方法是windows下推荐使用的,并可以用于目录(文件夹)的判断(返值为file_attribute_directory),不会因为文件访问权限等问题造成误判。
此外还有很多判断方法,各有优势和适用范围,需要注意的是,各个方法判断的“文件存在和不存在”可能包括同名目录、用户权限、文件夹不存在或禁止访问等问题,应该根据具体需求使用适合的方法:
1.
cfile::open或openfile,无法以读取方式打开
2.
_access函数,通过判断文件是否能够访问,返回文件是否存在
3.
cfilefind类或findfirstfile函数。这个也是很不错的方法,不但能够获取比较详细的文件存在信息,还能使用递归搜索子目录。
4.
使用shell函数shgetfileinfo判断文件是否存在,这个方法可以获取更完整的文件信息,不仅能判断是否存在,还能直接获取文件的shell信息,方便进一步处理。
参考技术C 给你一个函数:
#include <sys/stat.h>
//文件是否存在
bool FileExist(const char* FileName)

struct stat my_stat;
return (stat(FileName, &my_stat) == 0);


这样调用:
if(FileExist("这里写文件名"))

//这里写如果文件存在的处理代码
本回答被提问者和网友采纳
参考技术D VC++ 判断文件是否存在的方法有:

1. 使用_access函数,函数原型为:
int _access( const char *path, int mode );

2. 使用CreateFile函数,函数原型为:
HANDLE CreateFile( LPCTSTR lpFileName, //pointer to name of the file DWORD dwDesiredAccess, // access (readwrite) modeDWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTESlpSecurityAttributes, // pointer to security attributes DWORD dwCreationDisposition, //how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile //handle to file with attributes to // copy );

3. 使用FindFirstFile函数,函数原型为:
HANDLE FindFirstFile( LPCTSTR lpFileName, //pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information );

4. 使用GetFileAttributes函数,函数原型如下:

DWORD GetFileAttributes( LPCTSTRlpFileName // pointer to the name of a file or directory );

5. 使用Shell Lightweight Utility APIs函数。
PathFileExists()专门判断文件和目录时否存在的函数文件名可读性比较强还可以判断目录是否存在Header: Declared in Shlwapi.h ,Import Library: Shlwapi.lib 。
方法1:
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
if( (_access( "D:\\a.txt", 0 )) != -1 )
printf( "File ACCESS.C exists\n" );
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" );
方法2:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL))
AfxMessageBox("File ACCESS.C exists\n");
方法3:

#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
int main(int argc, char *argv[])
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
printf ("Target file is %s.\n", argv[1]);
hFind = FindFirstFile(argv[1], &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
printf ("Invalid File Handle. GetLastError reports %d\n", GetLastError ()); return (0);
else
printf ("The first file found is %s\n", FindFileData.cFileName); FindClose(hFind);
return (1);
方法4:
if (GetFileAttributes("c:\\1.txt") == -1)
MessageBox(0."Invalid File ","hehe",0)
else
MessageBox(0."The first file found ","haha",0)
方法5:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", 0, 0, NULL, OPEN_EXISTING, 0, NULL))
AfxMessageBox("File exists\n");

以上是关于如何在vc++6.0中引用bcgcontrolbar控件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在VC++6.0下用C语言调用引用参数如:void Creat(SqList &L)总是提示&出错?

如何在VC++6.0中新建一个通用类

VC++6.0中如何让窗口总在前面?

如何在pycharm中使用vc 6.0

VC++6.0 如何获取窗口客户区域在屏幕中的位置

如何在VC++6.0下删除一个按钮控件?