DwmExtendFrameIntoClientArea dosen工作

时间:2012-05-23 20:49:57

标签: c++ windows mfc aero-glass

我是WTL的新手 这是我主要对话框的onCreate代码

int Cwin32_mfcDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CDialogEx::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  Add your specialized creation code here
    MARGINS mar = {0};
    mar.cyBottomHeight = 100;
    DwmExtendFrameIntoClientArea(m_hWnd,&mar);
    return 0;
}

但是当我尝试编译我的项目时,我得到了这个错误

error LNK2019: unresolved external symbol __imp__DwmExtendFrameIntoClientArea@8 referenced in function "public: int __thiscall Cwin32_mfcDlg::OnCreate(struct tagCREATESTRUCTA *)" (?OnCreate@Cwin32_mfcDlg@@QAEHPAUtagCREATESTRUCTA@@@Z)

这是输出:

1>------ Build started: Project: win32_mfc, Configuration: Debug Win32 ------
1>Build started 5/24/2012 1:08:43 AM.
1>InitializeBuildStatus:
1>  Touching "Debug\win32_mfc.unsuccessfulbuild".
1>ClCompile:
1>  All outputs are up-to-date.
1>  win32_mfcDlg.cpp
1>ResourceCompile:
1>  All outputs are up-to-date.
1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>win32_mfcDlg.obj : error LNK2019: unresolved external symbol __imp__DwmExtendFrameIntoClientArea@8 referenced in function "public: int __thiscall Cwin32_mfcDlg::OnCreate(struct tagCREATESTRUCTA *)" (?OnCreate@Cwin32_mfcDlg@@QAEHPAUtagCREATESTRUCTA@@@Z)
1>D:\projects\C++\Projects\Team_projects\Bill\net\ttt\win32_mfc\Debug\win32_mfc.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.48
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

这是我的StdAfx.h代码:

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently

#pragma once

#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
#endif

#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // some CString constructors will be explicit

// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions


#include <afxdisp.h>        // MFC Automation classes



#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>             // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

#include <afxcontrolbars.h>     // MFC support for ribbons and control bars


#include <dwmapi.h>     // DWM APIs



//#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
//#endif

此项目位于MFC和Visual Studio 2010以及Windows 7 x64

1 个答案:

答案 0 :(得分:7)

DwmExtendFrameIntoClientArea()开始,您需要与Dwmapi.lib链接。