📄 readme.htm
字号:
<li><font face="Arial" size="2">Image size calculated differently in
different places</font></li>
<li><font face="Arial" size="2">Add support for 32-bit (alpha channel)
bitmaps for Windows XP</font></li>
<li><font face="Arial" size="2">Fixed width calculation for default menu
items</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CFrameWindowImpl:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">AddSimpleReBarBandCtrl sets toolbar extended
styles without preserving old ones</font></li>
<li><font face="Arial" size="2">PrepareChevronMenu should not create menu
items for buttons with TBSTATE_HIDDEN</font></li>
<li><font face="Arial" size="2">TPM_VERPOSANIMATION will not be defined in
atlframe.h if atlctrlw.h is included first</font></li>
<li><font face="Arial" size="2">CreateSimpleToolBarCtrl - height might be
too small if large font is used</font></li>
<li><font face="Arial" size="2">PrepareChevronMenu uses TB_GETBUTTONTEXT,
better use TB_GETBUTTONINFO</font></li>
<li><font face="Arial" size="2">Chevron menu doesn't close if clicked again
(Windows XP only)</font></li>
<li><font face="Arial" size="2">Should check local classes for superclassing</font></li>
<li><font face="Arial" size="2">Add support for 32-bit (alpha channel)
bitmaps for Windows XP</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">Update UI:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">UISetText can clear other menu item flags</font></li>
<li><font face="Arial" size="2">CUpdateUI::UIUpdateState assigns value with
|= instead of =</font></li>
<li><font face="Arial" size="2">Added UISetDefault() and fix default state
to work with menus</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CString:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">GetBuffer() and GetBufferSetLength() should
return NULL in out-of-memory condition</font></li>
<li><font face="Arial" size="2">Added missing methods: separate c-tors for
LPCSTR and LPCWSTR, CollateNoCase, TrimRight and TrimLeft variants, Find
variants, moved FormatV to public</font></li>
<li><font face="Arial" size="2">Fix _IsValidString usage</font></li>
<li><font face="Arial" size="2">FormatV incorrectly calculates buffer size
(too big)</font></li>
<li><font face="Arial" size="2">Usage of _ttoi causes problems with _ATL_MIN_CRT
in VC7</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CDC:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">GetTabbedTextExtent() should return DWORD
instead of BOOL</font></li>
<li><font face="Arial" size="2">Add FillRect() that accept color index
instead of a brush handle</font></li>
<li><font face="Arial" size="2">DrawDragRect() leaks regions and a brush</font></li>
<li><font face="Arial" size="2">Improved DitherBlt() - added brushes as
arguments for used colors</font></li>
<li><font face="Arial" size="2">Added DrawShadowText() (uses LoadLibrary/GetProcAddress
to run on older Windows)</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CListViewCtrl:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">SetItemState should use LVM_SETITEMSTATE</font></li>
<li><font face="Arial" size="2">SetItemCount should return a BOOL</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CRichEditCtrl:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Added SetCharFormat() variant that accepts
flags (for SCF_ALL)</font></li>
<li><font face="Arial" size="2">CharFromPos() should pass a pointer to
POINTL in lParam</font></li>
<li><font face="Arial" size="2">GetTextRange() - should add Unicode variant
for rich edit version >= 2</font></li>
<li><font face="Arial" size="2">Added another FormatRange() that can accept
a pointer to FORMATRANGE (needed for passing NULL to clear cache)</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CHyperLink:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Allow overriding of Navigate and
CalcLabelRect</font></li>
<li><font face="Arial" size="2">Doesn't handle right or center alignment</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CColorDialog:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Has static variables that were not
initialized with _ATL_MIN_CRT</font></li>
<li><font face="Arial" size="2">Fixed HookProc for ColorOK message - the
message is not sent, but the hook proc is called directly</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">atlcrack.h:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">MSG_WM_TIMER crack macro should cast to
TIMERPROC instead of TIMERPROC*</font></li>
<li><font face="Arial" size="2">Add cracked handlers for all new messages in
Common Controls 6</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">atlapp.h:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Fixed problems with atlTraceUI with ATL7</font></li>
<li><font face="Arial" size="2">#ifdefs for ATL7 were in the wrong place</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">atlctrls.h:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Add support in control classes for all new
messages in Common Controls 6</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CRecentDocumentList:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">AtlCompactPath corrupts memory if filename
is longer than requested compact size</font></li>
<li><font face="Arial" size="2">ReadFromRegistry incorrectly checks for
error when reading from registry</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CSplitterWindow:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Incorrect calculation of middle position</font></li>
<li><font face="Arial" size="2">3D border now drawn only if WS_EX_CLIENTEDGE
is set</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">Printing:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Uses DWORD instead of an int for a job ID</font></li>
<li><font face="Arial" size="2">CPrintJob::CancelPrintJob shouldn't have a
return value</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">Misc:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">CRegKey::QueryValue and SetValue are
deprecated in ATL7</font></li>
<li><font face="Arial" size="2">Added direct support for ATL7</font></li>
<li><font face="Arial" size="2">Replace ScreenToClient and ClientToScreen
with MapWindowPoints to support RTL layout</font></li>
<li><font face="Arial" size="2">CFindFile::GetFilePath(LPTSTR...) returns
path without the file name</font></li>
<li><font face="Arial" size="2">MDI: Updating client edge in
WM_WINDOWPOSCHANGING causes minimize/maximize/restore animation problems,
use WM_WINDOWPOSCHANGED</font></li>
<li><font face="Arial" size="2">Custom Draw: Added
CCustomDraw::OnSubItemPrePaint() overrideable method</font></li>
<li><font face="Arial" size="2">CFolderDialogImpl uses 'this' for
BROWSEINFO.lParam instead of T*</font></li>
<li><font face="Arial" size="2">CImageList::Destroy shouldn't use Detach()</font></li>
<li><font face="Arial" size="2">ATL7 has its own AtlLoadString</font></li>
<li><font face="Arial" size="2">CPropertySheet doesn't close when you press
X button</font></li>
<li><font face="Arial" size="2">Fixed problems for _U_STRINGorID and others
that moved from atlbase.h to atlwin.h in ATL7</font></li>
<li><font face="Arial" size="2">Add AtlMessageBox() that accepts either
in-memory or resource strings</font></li>
<li><font face="Arial" size="2">CScrollImpl: fixed bug with scrolling child
windows</font></li>
<li><font face="Arial" size="2">CPropertyPageImpl: Add new notification
handlers to enable direct return values (use #ifdef _WTL_NEW_PAGE_NOTIFY_HANDLERS
to use them)</font></li>
<li><font face="Arial" size="2">Add AtlInitCommonControls() to simplify use</font></li>
<li><font face="Arial" size="2">DDX: Fixed usage of the size of char arrays
for DDX</font></li>
<li><font face="Arial" size="2">CPageSetupDialog: changed usage of
CWndProcThunk because of changes in ATL7</font></li>
<li><font face="Arial" size="2">Fix confusing precedence in expressions</font></li>
<li><font face="Arial" size="2">Removed forward declarations because default
values for template arguments shouldn't be specified in two places (we don't
need them anyway)</font></li>
<li><font face="Arial" size="2">Win64: Fix /Wp64 warnings from 32-bit VC7
compiler caused by SDK headers</font></li>
<li><font face="Arial" size="2">Fix direct usage of English strings (they
can be #defined to something else now)</font></li>
<li><font face="Arial" size="2">AtlGetCommCtrlVersion not defined if _ATL_DLL
is in ATL 3.0 (and CmdBar is using it)</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">App Wizard:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Added manifest for Common Controls 6</font></li>
<li><font face="Arial" size="2">Loading Rich Edit DLL should use HMODULE</font></li>
<li><font face="Arial" size="2">Should not use atlimpl.cpp for ATL7</font></li>
<li><font face="Arial" size="2">Added message handler prototypes to
generated files</font></li>
<li><font face="Arial" size="2">VERSION resource always has VALUE "OLESelfRegister"
(now only for COM servers)</font></li>
<li><font face="Arial" size="2">Added option for putting implementation in
CPP files</font></li>
<li><font face="Arial" size="2">d-tor for the thread manager class in MSDI
project executed after the heap is destroyed</font></li>
<li><font face="Arial" size="2">Wrong settings when changing to a dialog
project and back (App Wizard 6.0 only)</font></li>
<li><font face="Arial" size="2">Remove cut/copy/paste accelerators for form
view and dialogs projects</font></li>
<li><font face="Arial" size="2">Fix toolbar bitmaps so they are not
transparent (problem with Windows XP flat menus only)</font></li>
<li><font face="Arial" size="2">Used CMDICommandBarCtrl for MDI apps</font></li>
<li><font face="Arial" size="2">Add symbols required for VC7 Class Wizard to
recognize an ATL project</font></li>
<li><font face="Arial" size="2">Changed default styles for the rebar, so it
does look OK without CmdBar and with manifest</font></li>
<li><font face="Arial" size="2">Added setup programs for both App Wizards</font></li>
<li><font face="Arial" size="2">Remove ignored resource attributes:
MOVEABLE, PURE, etc. (App Wizard 7.0 only)</font></li>
<li><font face="Arial" size="2">Add call to DefWindowProc to WinMain to
resolve possible problems if MSLU is used</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">Samples:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">Updated toolbar bitmaps, added #ifdefs for
ATL7, added manifest file for CommCtrl6, qualified _U_RECT with WTL
namespace, updated use of deprecated CRegKey functions, added VC7 projects</font></li>
<li><font face="Arial" size="2">Added Alpha sample</font></li>
</ul>
</blockquote>
<p style=margin:0in> </p>
<p style=margin:0in> </p>
<p style=margin:0in><b><font face="Arial">
<a name="Changes Between WTL 3.0 And 3.1"></a>7. Changes Between WTL 3.0 And 3.1</font></b></p>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">New classes:</font></p>
<blockquote style='margin-top:0in;margin-bottom:0in'>
<p style=margin:0in><font face="Arial" size="2">CPaneContainer - implements a window that
provides a title bar and a close button (like Explorer)</font></p>
<p style=margin:0in><font face="Arial" size="2">CDialogResize - an MI class that allows
resizing of dialogs (or any windows with child windows/controls)</font></p>
<p style=margin:0in><font face="Arial" size="2">CAxPropertyPageImpl - implements a property
page that can host ActiveX controls</font></p>
</blockquote>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">Fixes and enhancements:</font></p>
<blockquote style='margin-top:0in;margin-bottom:0in'>
<p style=margin:0in><font face="Arial" size="2">CServerAppModule now clears m_hEventShutdown to
avoid calling CloseHandle twice</font></p>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CString:</font></p>
<ul style='margin-top:0in;margin-bottom:0in'>
<li><font face="Arial" size="2">operator += now leaves original string
intact if it's out of memory</font></li>
<li><font face="Arial" size="2">Fixed bad DWORD_PTR usage in TrimRight,
TrimLeft, Replace, Remove</font></li>
<li><font face="Arial" size="2">Removed dependencies on CRT for projects
that don't use it</font></li>
<li><font face="Arial" size="2">Insert - fixed string corruption in release
builds</font></li>
<li><font face="Arial" size="2">Added optional floating point formatting
(for projects that use CRT)</font></li>
</ul>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">CEdit and CRichEditCtrl: SetSelAll and
SetSelNone had reversed implementation</font></p>
<p style=margin:0in> </p>
<p style=margin:0in><font face="Arial" size="2">atlres.h: Changed IDs so that they are
compatible with MFC's afxres.h</font></p>
<p style=margin:0in>&nb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -