在mfc中如何定义一个指针类型的变量? 在MFC中如何定义全局变量?如何引用它?

MFC\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6307\u5411Connection\u5bf9\u8c61\u7684\u6307\u9488\uff0c\u600e\u4e48\u586b\u5199\u4e0b\u8fb9\u7684\u53d8\u91cf\u7c7b\u578b\uff1f

\u4f60\u53ef\u4ee5\u8fdbMFC\u7684ClassVIew\u91cc \u6bcf\u4e2amfc\u5de5\u7a0b\u90fd\u4f1a\u6709\u4e2atheApp\u7684\u5168\u5c40\u53d8\u91cf\u53cc\u51fb\u5b83 \u627e\u5230\u5b83\u7684\u4f4d\u7f6e\u7136\u540e\u628a\u4f60\u8981\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf\u8ddf\u4ed6\u5199\u5728\u4e00\u8d77\u7136\u540e\u5728\u8fd9\u4e2a\u6587\u4ef6\u7684.h\u6587\u4ef6\u4e2d\u7528extern\u58f0\u660e\u8be5\u53d8\u91cf\u5c31\u53ef\u4ee5\u4e86

\u7528MFC\u5236\u4f5c\u7684\u5de5\u7a0b\u7531\u5f88\u591a\u6587\u4ef6\u6784\u6210\uff0c\u5b83\u4e0d\u80fd\u8c61\u4e00\u822cC++\u7a0b\u5e8f\u90a3\u6837\u968f\u610f\u5728\u7c7b\u5916\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\uff0c\u5728\u8fd9\u91cc\u8981\u60f3\u5b9a\u4e49\u80fd\u88ab\u5de5\u7a0b\u5185\u591a\u4e2a\u6587\u4ef6\u5171\u4eab\u7684\u5168\u5c40\u53d8\u91cf\u548c\u51fd\u6570\u5fc5\u987b\u7528\u4e00\u4e9b\u7279\u6b8a\u65b9\u6cd5\u624d\u884c\u3002\u5b9e\u9645\u4e0a\u6709\u591a\u79cd\u65b9\u6cd5\u53ef\u4ee5\u5b9e\u73b0\uff0c\u8fd9\u91cc\u53ea\u4ecb\u7ecd\u4e24\u79cd\u65b9\u6cd5\u3002

\u4e00\u3001\u5728\u5e94\u7528\u7a0b\u5e8f\u7c7b\u4e2d\u5b9a\u4e49

\u3000\u3000\u7528MFC\u751f\u6210\u7684\u5de5\u7a0b\u4e2d\u90fd\u6709\u4e00\u4e2a\u540d\u4e3aCxxxApp\u7684\u7c7b\uff0c\u5b83\u6d3e\u751f\u4e8eCWinApp\u7c7b\u3002\u8fd9\u4e2a\u7c7b\u4e3b\u8981\u8fdb\u884c\u7a0b\u5e8f\u7684\u521d\u59cb\u5316\uff0c\u751f\u6210\u6587\u6863\u3001\u89c6\u56fe\u5bf9\u8c61\u7b49\u5de5\u4f5c\u3002\u6211\u4eec\u53ef\u4ee5\u628a\u9700\u8981\u5168\u5c40\u8bbf\u95ee\u7684\u53d8\u91cf\u548c\u51fd\u6570\u5b9a\u4e49\u4e3a\u8fd9\u4e2a\u7c7b\u7684\u6210\u5458\u53d8\u91cf\u548c\u6210\u5458\u51fd\u6570\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u5168\u5c40\u8bbf\u95ee\u4e86\u3002

\u3000\u3000\u4ece\u4e25\u683c\u610f\u4e49\u4e0a\u8bb2\uff0c\u8fd9\u79cd\u53d8\u91cf\u548c\u51fd\u6570\u5e76\u4e0d\u662f\u5168\u5c40\u7684\uff0c\u56e0\u4e3a\u5b83\u4ecd\u7136\u53ea\u662f\u7c7b\u4e2d\u7684\u6210\u5458\uff0c\u53ea\u662f\u7531\u4e8e\u6211\u4eec\u5f88\u5bb9\u6613\u83b7\u5f97CxxxApp\u7c7b\u7684\u6307\u9488\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u5728\u6587\u6863\u3001\u89c6\u56fe\u3001\u5bf9\u8bdd\u6846\u4ee5\u53ca\u5404\u79cd\u81ea\u5b9a\u4e49\u7c7b\u4e2d\u8bbf\u95ee\u5230\u5b83\u4eec\uff0c\u8fbe\u5230\u4e0e\u5168\u5c40\u53d8\u91cf\u7c7b\u4f3c\u7684\u6548\u679c\u3002\u8bbf\u95ee\u65f6\u7528\u51fd\u6570\u201cAfxGetApp()\u201d\u83b7\u5f97CxxxApp\u7c7b\u7684\u6307\u9488\uff0c\u7528\u201cAfxGetApp()->\u6210\u5458\u201d\u8bbf\u95ee\u53d8\u91cf\u6216\u51fd\u6570\u3002

\u3000\u3000\u4f8b\uff1a

\u3000\u3000Test.h\uff1a\uff08\u5e94\u7528\u7a0b\u5e8f\u7c7b\u5934\u6587\u4ef6\uff09

class CTestApp : public CWinApp
{
\u3000 public:
\u3000\u3000 int x; //\u5168\u5c40\u53d8\u91cf
\u3000\u3000 int f(int y); //\u5168\u5c40\u51fd\u6570
\u3000\u3000 \u2026\u2026\u2026\u2026
};
\u3000\u3000Test.cpp\uff1a\uff08\u5e94\u7528\u7a0b\u5e8f\u7c7b\u7a0b\u5e8f\u6587\u4ef6\uff09

int CTestApp::f(int y) //\u5168\u5c40\u51fd\u6570\u5b9a\u4e49
{
\u3000 y++;
\u3000 return y;
}
\u3000\u3000\u5b9a\u4e49\u5728CTestApp\u7c7b\u4e2d\u7684\u53d8\u91cf\u548c\u51fd\u6570\u53ef\u4ee5\u5728\u5176\u5b83\u7c7b\u4e2d\u88ab\u8bbf\u95ee\u3002\u6bd4\u5982\u5728\u89c6\u56fe\u7684\u67d0\u51fd\u6570\u4e2d\u8981\u8bbf\u95ee\u53d8\u91cfx\u548c\u51fd\u6570f()\uff1a

void CTestView::xyz()
{
\u3000 CTestApp *app = (CTestApp *)AfxGetApp(); //\u751f\u6210\u6307\u5411\u5e94\u7528\u7a0b\u5e8f\u7c7b\u7684\u6307\u9488
\u3000 app->x = 0; //\u8bbf\u95ee\u53d8\u91cfx
\u3000 int z = app->f(1); //\u8bbf\u95ee\u51fd\u6570f()
\u3000 \u2026\u2026\u2026\u2026
}
\u3000\u3000\u8fd9\u6837\uff0c\u53d8\u91cfx\u548c\u51fd\u6570f()\u53ef\u4ee5\u89c6\u4f5c\u4e3a\u5168\u5c40\u7684\u3002

\u3000\u3000\u7528\u8fd9\u79cd\u65b9\u6cd5\u5b9e\u73b0\u7684\u5168\u5c40\u53d8\u91cf\u548c\u5168\u5c40\u51fd\u6570\u867d\u6bd4\u8f83\u7b80\u5355\uff0c\u4f46\u4e5f\u6709\u7f3a\u70b9\uff0c\u4e00\u662f\u8bbf\u95ee\u4e0d\u592a\u65b9\u4fbf\uff0c\u6bcf\u6b21\u90fd\u9700\u8981\u83b7\u53d6\u5e94\u7528\u7a0b\u5e8f\u7c7b\u7684\u6307\u9488\uff1b\u518d\u5c31\u662f\u628a\u4e00\u4e9b\u4e0e\u5e94\u7528\u7a0b\u5e8f\u7c7b\u672c\u8eab\u65e0\u5173\u7684\u53d8\u91cf\u548c\u51fd\u6570\u653e\u5728\u91cc\u9762\uff0c\u4f7f\u8fd9\u4e2a\u7c7b\u770b\u4e0a\u53bb\u602a\u602a\u7684\uff0c\u7834\u574f\u4e86\u7c7b\u7684\u5c01\u88c5\u3002

\u3000\u3000\u4e8c\u3001\u7528\u9759\u6001\u53d8\u91cf\u548c\u9759\u6001\u51fd\u6570\u5b9e\u73b0

\u3000\u3000\u5f88\u559c\u6b22API\u51fd\u6570\u7684\u90a3\u79cd\u8c03\u7528\u65b9\u6cd5\uff0c\u4e0d\u8bba\u5728\u54ea\u4e2a\u7c7b\u4e2d\u53ea\u8981\u7528\u201c::API\u51fd\u6570\u201d\u5c31\u53ef\u4ee5\u8c03\u7528\u4e86\u3002\u5408\u7406\u5229\u7528\u9759\u6001\u7c7b\u578b(static)\u53ef\u4ee5\u5b9e\u73b0\u4e0e\u6b64\u76f8\u4f3c\u7684\u5168\u5c40\u53d8\u91cf\u548c\u5168\u5c40\u51fd\u6570\u3002

\u3000\u3000\u9759\u6001\u53d8\u91cf\u548c\u9759\u6001\u51fd\u6570\u6709\u5982\u4e0b\u6027\u8d28\uff1a

\u3000\u3000\u82e5\u5728\u4e00\u4e2a\u7c7b\u4e2d\u7528\u5173\u952e\u5b57static\u58f0\u660e\u6570\u636e\u6210\u5458\uff0c\u5219\u8fd9\u4e2a\u6570\u636e\u6210\u5458\u5c31\u53ea\u5b58\u5728\u4e00\u4e2a\u62f7\u8d1d\uff0c\u65e0\u8bba\u8be5\u7c7b\u521b\u5efa\u4e86\u591a\u5c11\u4e2a\u5b9e\u4f8b\uff0c\u5b83\u59cb\u7ec8\u53ea\u5b58\u5728\u4e00\u4e2a\uff0c\u5373\u4f7f\u8be5\u7c7b\u7684\u5b9e\u4f8b\u4e00\u4e2a\u4e5f\u6ca1\u521b\u5efa\uff0c\u5b83\u4e5f\u5b58\u5728\u3002

\u3000\u3000\u82e5\u5728\u4e00\u4e2a\u7c7b\u4e2d\u7528\u5173\u952e\u5b57static\u58f0\u660e\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u53ef\u4ee5\u7528\u201c\u7c7b\u540d::\u51fd\u6570\u540d\u201d\u65b9\u5f0f\u8bbf\u95ee\uff0c\u65e0\u9700\u5f15\u7528\u8be5\u7c7b\u7684\u5b9e\u4f8b\uff0c\u751a\u81f3\u8fd9\u4e2a\u7c7b\u7684\u5b9e\u4f8b\u53ef\u4ee5\u4e0d\u5b58\u5728\u3002

\u3000\u3000\u5229\u7528\u8fd9\u4e2a\u6027\u8d28\u5b9e\u73b0\u7684\u5168\u5c40\u53d8\u91cf\u548c\u51fd\u6570\u4f7f\u7528\u8d77\u6765\u5f88\u65b9\u4fbf\u3002

\u3000\u3000\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff0c\u5168\u5c40\u53d8\u91cf\u548c\u5168\u5c40\u51fd\u6570\u6700\u597d\u96c6\u4e2d\u5c01\u88c5\uff0c\u4e0d\u8981\u5728\u6587\u6863\u3001\u89c6\u56fe\u7b49\u7c7b\u5185\u90e8\u5b9a\u4e49\uff0c\u8fd9\u6837\u7528\u8d77\u6765\u624d\u6709\u5168\u5c40\u7684\u611f\u89c9\u3002

\u3000\u3000\u4f8b\uff1a

\u3000\u30001\u3001\u6dfb\u52a0\u4e00\u4e2a\u6ca1\u6709\u57fa\u7c7b\u7684\u65b0\u7c7b\uff0c\u8bbe\u7c7b\u540d\u8d77\u4e3aCPublic\uff0c\u59d1\u4e14\u79f0\u4e4b\u4e3a\u516c\u7528\u7c7b

\u3000\u3000\u5355\u51fb\u201cInsert\u201d\u83dc\u5355\u4e0b\u7684\u201cNew Class\u201d\u547d\u4ee4\uff0c\u9009\u62e9\u201cClass type\u201d\u4e3a\u201cGeneric Class\u201d\uff0c\u5728\u201cName\u201d\u680f\u4e2d\u586b\u5165\u7c7b\u540d\u201cCPublic\u201d\uff0c\u5355\u51fb\u201cOK\u201d\uff0c\u5219\u65b0\u7c7b\u5efa\u7acb\u5b8c\u6bd5\u3002

\u3000\u30002\u3001\u5305\u542b\u516c\u7528\u7c7b\u7684\u5934\u6587\u4ef6\uff0c\u4f7f\u5404\u4e2a\u7c7b\u90fd\u80fd\u8bbf\u95ee\u5b83

\u3000\u3000CPublic\u7684\u5934\u6587\u4ef6\u5e94\u5305\u542b\u5728\u5e94\u7528\u7a0b\u5e8f\u7c7b\u7684\u5934\u6587\u4ef6\u4e2d\uff0c\u8fd9\u6837\u5728\u5176\u5b83\u7c7b\u4e2d\u5f15\u7528CPublic\u7c7b\u65f6\u5c31\u4e0d\u9700\u8981\u518d\u5305\u542b\u4e86\u3002

\u3000\u3000Test.h\uff1a\uff08\u5e94\u7528\u7a0b\u5e8f\u7c7b\u5934\u6587\u4ef6\uff09

#include "Public.h" //\u5305\u542b\u516c\u7528\u7c7b\u5934\u6587\u4ef6

class CTestApp : public CWinApp
{
\u2026\u2026\u2026\u2026
};
\u3000\u30003\u3001\u5728\u516c\u7528\u7c7b\u4e2d\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf\u548c\u5168\u5c40\u51fd\u6570\uff0c\u5747\u4f7f\u7528static\u4fee\u9970\uff0c\u9759\u6001\u53d8\u91cf\u8fd8\u5fc5\u987b\u5728\u7c7b\u5916\u5b9a\u4e49\u548c\u521d\u59cb\u5316

\u3000\u3000Public.h\uff1a\uff08\u516c\u7528\u7c7b\u5934\u6587\u4ef6\uff09

class CPublic
{
public:
CPublic();
virtual ~CPublic();

public:
static int x; //\u5168\u5c40\u53d8\u91cf
static int time; //\u5168\u5c40\u53d8\u91cf
static int f(int y); //\u5168\u5c40\u51fd\u6570
\u2026\u2026\u2026\u2026
}
\u3000\u3000\u5728\u516c\u7528\u7c7b\u4e2d\u5bf9\u9759\u6001\u53d8\u91cf\u8fdb\u884c\u521d\u59cb\u5316\u548c\u5b9a\u4e49\u51fd\u6570\u4f53\uff1a

\u3000\u3000Public.cpp\uff1a\uff08\u516c\u7528\u7c7b\u7a0b\u5e8f\u6587\u4ef6\uff09

int CPublic::x = 0; //\u521d\u59cb\u5316\u5168\u5c40\u53d8\u91cf
int CPublic::time; //\u5b9a\u4e49\u5168\u5c40\u53d8\u91cf

CPublic::CPublic()
{

}

CPublic::~CPublic()
{

}

int CPublic::f(int y) //\u5168\u5c40\u51fd\u6570\uff0c\u8fd9\u91cc\u4e0d\u8981\u518d\u52a0static
{
y++;
return y;
}
\u3000\u30004\u3001\u5168\u5c40\u91cf\u7684\u4f7f\u7528

\u3000\u3000\u4f7f\u7528\u53d8\u91cf\uff1aCPublic::\u53d8\u91cf\u540d

\u3000\u3000\u4f7f\u7528\u51fd\u6570\uff1aCPublic::\u51fd\u6570()

\u3000\u3000\u5982\u5728\u89c6\u56fe\u7684\u67d0\u51fd\u6570\u4e2d\u8bbf\u95ee\u53d8\u91cfx\u548c\u51fd\u6570f()\uff1a

void CTestView::xyz()
{
CPublic::x = 0; //\u8bbf\u95ee\u53d8\u91cfx
CPublic::time = CPublic::f(1); //\u8bbf\u95ee\u51fd\u6570f()
\u2026\u2026\u2026\u2026
}
\u3000\u3000\u5728\u5176\u5b83\u7c7b\u4e2d\u8bbf\u95eex\u3001time\u548cf()\u7684\u65b9\u6cd5\u4e0e\u6b64\u76f8\u540c\u3002

\u3000\u30005\u3001\u51e0\u70b9\u6ce8\u610f\uff1a

\u3000\u3000\u2460 \u7531\u4e8e\u9759\u6001\u91cf\u53ef\u72ec\u7acb\u4e8e\u7c7b\u5b58\u5728\uff0c\u4e0d\u9700\u8981\u751f\u6210CPublic\u7c7b\u7684\u5b9e\u4f8b\u3002

\u3000\u3000\u2461 \u9759\u6001\u6570\u636e\u6210\u5458\u7684\u5b9a\u4e49\u548c\u521d\u59cb\u5316\u5fc5\u987b\u5728\u7c7b\u5916\u8fdb\u884c\uff0c\u5982\u4f8b\u4e2dx\u7684\u521d\u59cb\u5316\uff1b\u53d8\u91cftime\u867d\u7136\u6ca1\u6709\u521d\u59cb\u5316\uff0c\u4f46\u4e5f\u5fc5\u987b\u5728\u7c7b\u5916\u8fdb\u884c\u5b9a\u4e49\u3002\u7531\u4e8e\u6ca1\u6709\u751f\u6210CPublic\u7c7b\u7684\u5b9e\u4f8b\uff0c\u6240\u4ee5\u5b83\u7684\u6784\u9020\u51fd\u6570\u548c\u6790\u6784\u51fd\u6570\u90fd\u4e0d\u4f1a\u88ab\u6267\u884c\uff0c\u5728\u91cc\u9762\u505a\u4ec0\u4e48\u5de5\u4f5c\u90fd\u6ca1\u6709\u4ec0\u4e48\u610f\u4e49\u3002

\u3000\u3000\u2462 \u5982\u679c\u9759\u6001\u51fd\u6570\u9700\u8981\u8bbf\u95eeCPublic\u7c7b\u5185\u7684\u53d8\u91cf\uff0c\u8fd9\u4e9b\u53d8\u91cf\u4e5f\u5fc5\u987b\u4e3a\u9759\u6001\u7684\u3002\u56e0\u4e3a\u975e\u9759\u6001\u91cf\u5728\u4e0d\u751f\u6210\u5b9e\u4f8b\u65f6\u90fd\u4e0d\u4f1a\u5b58\u5728\u3002 \u5982\uff1a

class CPublic
{
public:
int x; //\u5185\u90e8\u53d8\u91cf
static int f(int y) //\u5168\u5c40\u51fd\u6570
{
x++;
return x;
};
\u2026\u2026\u2026\u2026
};
\u3000\u3000\u8fd9\u91ccx\u867d\u4e3a\u7c7b\u5185\u6210\u5458\uff0c\u4f46\u5982\u679c\u4e0d\u751f\u6210CPublic\u7c7b\u7684\u5b9e\u4f8b\uff0c\u5c31\u4f1a\u51fa\u73b0\u51fd\u6570f()\u5b58\u5728\uff0c\u800c\u53d8\u91cfx\u4e0d\u5b58\u5728\u7684\u95ee\u9898\u3002

\u3000\u3000\u603b\u4e4b\uff0c\u7528\u6ca1\u6709\u5b9e\u4f8b\u7684\u7c7b\u7ba1\u7406\u5168\u5c40\u91cf\u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\uff0c\u5b83\u5177\u6709\u96c6\u4e2d\u7ba1\u7406\uff0c\u4f7f\u7528\u65b9\u4fbf\u7684\u597d\u5904\u3002\u5f53\u7136\uff0c\u9664\u975e\u7279\u522b\u5fc5\u8981\uff0c\u5168\u5c40\u91cf\u8fd8\u662f\u5c11\u7528\u4e3a\u597d\uff0c\u4e00\u4e2a\u597d\u7684\u7f16\u7a0b\u8005\u51b3\u4e0d\u4f1a\u968f\u610f\u6ee5\u7528\u5168\u5c40\u91cf\u7684\uff0c\u4e00\u4e2a\u5c01\u88c5\u505a\u5f97\u4e0d\u597d\u7684\u7a0b\u5e8f\uff0c\u5728\u4fee\u6539\u7ef4\u62a4\u65f6\u4f1a\u8ba9\u4f60\u5403\u8db3\u82e6\u5934\u3002

对编译器来说,两种方法都是正确的,但是按你的说法 变量类型应该是 FILE* ;变量名是fliein。fliein是一个FLIE指针类型的变量

1.从视图类获得文档类的指针
在视图类中需要引用文档类的地方之前,使用以下语句:CTextDoc *pDoc=(CTestDoc*)GetDocument();以后便可使用pDoc指针访问文档类。
可以在Test.cpp中的Initstance()方法中看到以下语句:
CSingleDocTemplate *pDocTemplate;
pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CTestDoc),RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);
以及TestView.h中的线上定义:
inline CTestDoc* CTestView::GetDocument()
{ return (CTestDoc*)m_pDocument;}

2.从文档类取得视图类的指针

CDocument类提供了两个函数用于视图类的定位:GetFirstViewPosition()和GetNextView(),具体语法如下:
virtual POSITION GetFirstViewPosition() const;
virtual CView* GetNextView(POSITION& rPosition) const;
注意:GetNextView()括号中的参数用的是引用方式,因此执行后值可能改变。

需将这两个函数调用一次即可得到CTestView的指针如下(需定义一个POSITION结构变量来辅助操
作):
CTestView* pTestView;
POSITION pos=GetFirstViewPosition();
pTestView=GetNextView(pos);
这样,便可到了CTestView类的指针pTestView.执行完成几句后,变量pos=NULL,因为没有下一个视图类,自然也没有下一个视图类的POSITION.
判断一个类指针指向的是否某个类的实例时,可用IsKindOf()成员函数时行检查,如:
pView->IsKindOf(RUNTIME_CLASS(CTestView));
即可检查pView所指是否是CTestView类。

是的。指针类型肯定是不一样的。比如说颜色框和文件框指针肯定不一样。
另外自定义的各类对话框指针也不相同。
不需要重新重新存储。用RUN_CLASS(类名)可以动态得到对象的指针.


2总写法都可以,但第二种写法能定义多个指针 如
FLIE *fp1,*fp2;

对于c++编译器来说,没区别.
到个人,就是习惯问题.怎么看得爽,写什么.

  • MFC涓鐨鎸囬拡鍙橀噺绫诲瀷
    绛旓細CEx_ChatDlg * m_pDlg;涓嶇煡閬撲綘涓轰粈涔堜笉鏄庣櫧
  • c++涓mfc閲鎴戝垱寤轰簡涓涓紪杈戞,鏄痗string绫诲瀷鐨,鍒╃敤涓涓寚閽鎸囧悜瀹
    绛旓細濡傛灉鏄疌String绫诲瀷锛岄偅鏄綘涓鸿繖涓帶浠跺垱寤轰簡涓涓鍊煎彉閲忋傚氨涓嶅彲鑳芥槸鎸囬拡浜嗐傚鏋滄槸鎸囬拡閭h偗瀹氭槸CEdit绫诲瀷鐨勬帶浠跺彉閲忋傚鏋滄槸鎺т欢鍙橀噺鐢℅etWindowText鍑芥暟鏉ヨ幏鍙栨帶浠朵笂鐨勫笺傚鏋滄槸鍊煎彉閲忥紝瑕佸厛鐢║pdateData(TRUE);鎶婃帶浠朵笂鐨勫唴瀹规洿鏂板埌璇ユ帶浠跺搴旂殑鍊煎彉閲忎笂鍐嶆瘮杈冦
  • VC++MFC涓 鎸囬拡鏁扮粍鍒濆鍖栭棶棰
    绛旓細浣犲彲浠ユ妸mm澹版槑涓簊tatic锛岀劧鍚庡湪绫澶.cpp鏂囦欢閲屽畾涔 姣斿 .h class yourclass { public:static char* mm[6];};.cpp char* yourclass::mm[6] = {"abc","begin","if","then","else","end"};
  • MFC 濡備綍鍦ㄤ竴涓被涓娇鐢ㄥ彟涓涓被涓畾涔鐨勫彉閲
    绛旓細浣犺鐨勮繖绉嶆柟寮忚寤虹珛鍦–aDlg姝e湪浣跨敤涓墠鍙互锛孋aDlg *m_pMainDlg;杩欐槸澹版槑涓涓CaDlg绫鐨鎸囬拡锛屼綘澹版槑涔嬪悗娌℃湁缁欒繖涓寚閽堝垵濮嬪寲锛屾墍浠ュ氨鍑虹幇浣犵殑闂浜嗐備綘鍙互鍐岰bDlg鐨勬瀯閫犲嚱鏁颁腑鍔 CbDlg(CaDlg * pCaDlg);鐒跺悗m_pMainDlg = pCaDlg锛涗笉杩囪繕鏈変竴绉嶆洿濂界殑瀵硅瘽妗嗙敋鑷崇獥鍙d箣闂翠紶鏁版嵁鐨勬柟寮忥紝閭...
  • MFC閲鐨凞C鏄粈涔堟剰鎬?鎬庝箞浣跨敤DC?鏈濂借兘涓句釜渚嬪瓙璇存槑涓涓?
    绛旓細HDC鏄澶囨弿杩拌〃鍙ユ焺绫诲瀷,鍙ユ焺鍙互绠鍗曠殑鐞嗚В涓鎸囬拡,琚瀹氫箟涓32浣嶇殑鏃犵鍙锋暣鏁般 浠ヤ笂鍐呭杞嚜:http://longzxr.blog.sohu.com/187934817.html DC(璁惧鎻忚堪琛):Windows搴旂敤绋嬪簭閫氳繃涓烘寚瀹氳澶(灞忓箷,鎵撳嵃鏈虹瓑)鍒涘缓涓涓璁惧鎻忚堪琛(Device Context, DC)鍦―C琛ㄧず鐨勯昏緫鎰忎箟鐨勨滅敾甯冣濅笂杩涜鍥惧舰鐨勭粯鍒躲侱C鏄竴绉...
  • 鍦∕FC缂栫▼涓湁涓蹇靛彨鈥滆澶囦笂涓嬫枃鈥,绌剁珶浠涔堟墠绠楁槸璁惧涓婁笅鏂囧憿...
    绛旓細涓嶤ClientDC涓鏍,杩樻湁CWindowDC,CPaintDC,鍙槸瀹冧滑鐨勭粯鍒惰寖鍥翠笉涓鏍枫備絾寮勫埌搴,閮藉彧鏄疕DC鐨勪竴浜涘皝瑁呰屽凡,浣犲彲浠ュ湪CDC绫讳腑鐩存帴寮曠敤 m_hDC,杩欏氨鏄偅涓師濮嬬殑HDC鍙ユ焺浜嗐侰DC鏄疢FC鐨凞C鐨涓涓绫籋DC鏄疍C鐨勫彞鏌,API涓殑涓涓被浼鎸囬拡鐨勬暟鎹绫诲瀷.MFC绫鐨勫墠缂閮芥槸C寮澶寸殑H寮澶寸殑澶у鏁版槸鍙ユ焺杩欐槸涓轰簡鍔╄,鏄紪绋嬭\鍐...
  • mfc涓鎴戞兂瀹氫箟涓涓鍑芥暟 璇烽棶濡備綍瀹氫箟
    绛旓細浣滀负浠讳綍绐楀彛绫锛堝璇濇銆佽鍥撅級鐨勬垚鍛樺嚱鏁帮紝閮藉彲浠ヤ娇鐢ㄦ墍鏈MFC搴撶殑瀵硅薄鍜屽嚱鏁般侴etPixel鏄疍C鎿嶄綔鍑芥暟锛屽鏋滈渶瑕佷娇鐢ㄨ鍑芥暟锛岄渶瑕佽幏鍙栧埌绐楀彛鐨刣c鍐嶆搷浣溿傞氬父锛岄兘鏄粠OnDraw/OnPaint涓皟鐢ㄥ嚱鏁板苟閫氳繃鍙傛暟浼犻扖DC鎸囬拡锛屼篃鍙互閫氳繃GetDC鍑芥暟鑾峰彇銆
  • c++mfc涓轰綍鎶ラ敊涓嶅厑璁鎸囬拡鎸囧悜涓嶅畬鏁寸殑绫荤被鍨?
    绛旓細浣犵殑struct rgb鐨绫诲瀷鏄笉鏄病鏈夊湪杩欐浠g爜涔嬪墠瀹氫箟锛熻繖鍦–鍜孋++閮戒笉鍏佽
  • C++濡備綍鍦ˋ绫涓畾涔変竴涓寚閽鎸囧悜B绫荤殑涓涓垚鍛樺嚱鏁
    绛旓細1銆佺洿鎺ュ畾涔夊嵆鍙傛瘮濡傚凡鏈変竴涓被class A, 鍐瀹氫箟涓涓绫籧lass B锛岃繖鏍峰湪B鐨勫畾涔変腑锛屽氨鍙互鏈変竴涓狝*绫诲瀷鐨勬垚鍛樺彉閲忋傛瘮濡 class B { A * a;};杩欓噷鐨凚::a灏辨槸涓涓狝*绫诲瀷鐨鎸囬拡銆2銆侀渶瑕佹敞鎰忕殑鏄紝瑕佷娇鐢ㄨ繖绉嶅舰寮忕殑瀹氫箟锛岃涔圓鐨勫畾涔夊湪B鐨勪笂鏂癸紝瑕佷箞鍦˙瀹氫箟鍓嶅姞涓涓狝绫荤殑澹版槑銆傚 class A...
  • MFC涓浣璁╃敓鎴涓涓被
    绛旓細鍒板簳涔嬪墠鏈夋病鏈夋瀯閫犺繃绫鐨勫疄渚嬨傚鏋滄病鏈夋瀯閫犺繃锛岄偅涔堝氨鏋勯涓涓鏂扮殑瀹炰緥銆傚鏋滄瀯閫犺繃锛岄偅涔堝氨鎶婁箣鍓嶆瀯閫犵殑閭d釜瀹炰緥杩斿洖銆備负浜嗕繚璇佷箣鍓嶆瀯閫犵殑瀹炰緥锛屽湪绋嬪簭杩愯鏈熼棿涓鐩村瓨鍦紝涓嶈鏋愭瀯锛屾垜浠彧鑳芥妸鎸囧悜杩欎釜瀹炰緥鐨鎸囬拡澹版槑鎴愰潤鎬佸彉閲忥紝瀛樻斁鍦ㄩ潤鎬佸瓨鍌ㄥ尯锛屾妸杩欎釜绫荤殑瀹炰緥鐢╪ew鏉ユ瀯閫狅紝骞舵斁鍦ㄥ爢閲屻
  • 扩展阅读:一张图看懂指针万用表 ... 苹果手机nfc怎么使用 ... 学c#有前途吗 ... 华为nfc功能有什么用 ... 检测到nfc标签怎么消除 ... oppo为啥找不到nfc ... 手机闪付nfc怎么用 ... 怎么去掉nfc服务功能 ... mf47型万用表组成步骤 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网