windows程序设计里,bltbit函数必须要有位图么?
是这样的。我要在内存里画一个圆,然后贴到屏幕上。那么我想的步骤是:创建兼容性dc----在此dc上画一个圆---bltbit到屏幕上请问这样能行么?教程上,好像多了一步,...
是这样的。我要在内存里画一个圆,然后贴到屏幕上。那么我想的步骤是:
创建兼容性dc ----在此dc上画一个圆---bltbit到屏幕上
请问这样能行么?
教程上,好像多了一步,他都是先建立一个位图资源,然后selectobject与兼容dc关联,然后再画图---再bltbit
我想,为什么会多这一步,要bltbit难道一定要弄个位图资源么? 展开
创建兼容性dc ----在此dc上画一个圆---bltbit到屏幕上
请问这样能行么?
教程上,好像多了一步,他都是先建立一个位图资源,然后selectobject与兼容dc关联,然后再画图---再bltbit
我想,为什么会多这一步,要bltbit难道一定要弄个位图资源么? 展开
1个回答
展开全部
“Window程序设计”书本上的评论:
__stdcall的为__cdecl的WideCharToMultiByte MultiByteToWideChar
多字节字符集和Unicode:IsTextUnicode有
TCHAR.H _tcslen(wcslen和strlen的)
TCHAR(为wchar_t和char)_T,_TEXT,L
的Unicode / ANSI:lstrlen lstrcpy lstrcpyn lstrcat LSTRCMP LSTRCMPI
调用vsprintf wsprintf wvsprintf _vsntprintf
va_list的,的va_start,va_arg用来,va_end
PlaySound的滚屏ScrollDC BR /> InvalidateRect函数InvalidateRgb
GetTextMetrics(得到直流文本度量)GetTextFace(Set. ..)
GetClientDC来GetWindowDC
SetScrollRange用SetScrollPos SetScrollSizes SetScrollInfo
WM_PAINT:BeginPaint函数调用,使区成直流电有效
的CreateCompatibleDC GetDeviceCaps SetTextAlign
图形渲染功能:与setPixel(GetPixel的)
lineTo的多段线(无填充)/多边形(填充)PolylineTo PolyPolyline弧
> PolyBezier PolyBezierTo 包含arcTo AngleArc多边形绘制
椭圆矩形RoundRect和弦派
个CreatePen CreatePenIndirect GETOBJECT选择对象DELETEOBJECT(HPEN)
SetBkColor SetTextColor SetBkMode SetROP2(GetROP2)SetPolyFillMode
CreateBrushIndirect CreateSolidBrush CreateHatchBrush
CreatePatternBrush CreateDIBPatternBrushPt(对位图创建刷子基)
SetMapMode(GetMapMode)SetWindowExtEx DPtoLP函数LPtoDP函数
SetViewportOrgEx SetWindowOrgEx
区域和剪裁:
FillRect FrameRect InvertRect (矩形都喜欢素色翻转)
SetRect对OffsetRect InflateRect SetRectEmpty CopyRect
IntersectRect(路口)UnionRect IsRectEmpty的PtInRect
CreateRectRgn(当你创建一个区域,得到的句柄地区)CreateRectRgnIndirect CreateEllipticRgn CreateEllipticRgnIndirect
处理CreatePolygonRgn CombineRgn
面积可用于未来四年的绘图功能:FillRgn FrameRgn InvertRgn PaintRgn
(您必须使用DELETEOBJECT(HRGN)删除后无法使用该地区的您创建)
键盘:函数GetKeyState GetAsyncKeyState GetKeyNameText
ScreenToClient ClientToScreen CreateCaret SetCaretPos ShowCaret
windowclass CS | = CS_DBLCLKS;
鼠标:WM_NCHITTEST每次调用ShowCursor GetCursorPos(SetCursorPos)
releaseCapture释放SetCapture函数
SetWindowLong函数(GetWindowLong)SetClassLong(GetClassLong)
SETFOCUS(GETFOCUS)函数GetDlgItem WM_SETFOCUS WM_KILLFOCUS
SystemParametersInfo DrawBoxOutline
定时器:SetTimer的KillTimer函数WM_TIMECHANGE
GetLocalTime(SetLocalTime)GETSYSTEMTIME(SetSystemTime)
GetDateFormat GetLocaleInfo
的getParent GetDlgCtrlID IsWindowVisible
按钮:BS_OWNERDRAW
通知代码:BN_SETFOCUS发送一条消息:BM_SETCHECK BM_SETIMAGE
GetSysColors(SetSysColors)滚屏
按钮抽奖:WM_CTLCOLORBTN从绘画风格:BS_OWNERDRAW WM_DRAWITEM消息
WM_CTLCOLORBTN:很少用
WM_ERASEBKGND:返回TRUE;
WM_PAINT:窗口没有响应
WM_DRAWITEM:自画像
SetClassLong(HWND,GCL_HBRBACKGROUND,(LONG)CreateSolidBrush(...))
WM_CTLCOLORSCROLLBAR(回报背景颜色)
WM_CTLCOLORSTATIC(与SetTextColor和SetBkColor设置前景色和背景色) WM_SYSCOLORCHANGE
文本编辑框:通知码:EN_SETFOCUS EN_KILLFOCUS EN_CHANGE EN_UPDATE
消息:EM_GETSEL EM_SETSEL EM_GETLINECOUNT EM_LINEINDEX
EM_LINELENGTH EM_GETLINE
重绘标志:WM_SETREDRAW(TRUE / FALSE)
列表框:LB_RESETCONTENT LB_DELETESTRING LB_ADDSTRING LB_INSERTSTRING等
强大的消息:LB_DIR
通知代码:LBN_SELCHANGE LBN_KILLFOCUS等GetEnvironmentStrings
菜单和资源:DrawIcon AnsiNext LockResource(LoadResource(FindResource))
CreateMenu AppendMenu DeleteMenu InsertMenu ModifyMenu RemoveMenu BR /> EnableMenuItem IsClipboardFormatAvaliable
DrawMenuBar GetSubMenu来GetMenuItemCount GetMenuItemID CheckMenuItem
GetMenuString GetMenuState DestroyMenu来TrackPopupMenu LoadMenu的SetMenu
快捷键:LoadAccelerators REGISTERHOTKEY TranslateAccelerator的
模态对话框:DialogBox的DialogBoxIndirect DialogBoxParam时处理WM_INITDIALOG消息并在退出时的EndDialog
向子控件CheckRadioButton CheckDlgButton IsDlgButtonChecked 非模态对话框:CreateDialog函数CreateDialogIndirect的ShowWindow SetDlgItemText
消息处理,在主窗口的消息循环中加入:IsDialogMessage会
通用对话框:的GetOpenFileName则GetSaveFileName CHOOSECOLOR
FindText一个replaceText
MSDN示例:使用通用对话框
内存分配:的GlobalAlloc GlobalReAlloc GlobalSize GlobalFree(GlobalHandle(P));
GlobalLock GlobalUnlock CopyMemory
剪辑局:OpenClipboard EmptyClipboard SetClipboardData CloseClipboard
GetClipboardData IsClipboardFormatAvailable EnumClipboardFormats
CountClipboardFormats RegisterClipboardFormat GetClipboardFormatName
剪贴板钩:SetClipboardViewer(HWND) - > WM_DRAWCLIPBOARD )
解开:ChangeClipboardChain
GetClipboardViewer WM_CHANGECBCHAIN WM_DRAWCLIPBOARD
“Window程序设计”一书回顾:??
打印机:CreateDC PRINTDLG STARTDOC起始页尾页页次ENDDOC BR /> EnumPrinters的getVersion(防爆)WM_SETTINGCHANGE消息WM_INITMENUPOPUP
OpenPrinter PrinterProperties CREATEIC GetPrinterDC
SETABORTPROC(使用回调函数来中止打印任务)WM_SETTINGCHANGE
设备相关的位图:
CreateBitmap函数CreateBitmapIndirect
BitBlt函数StretchBlt的SetStretchBltMode的PatBlt
SetBitmapBits GetBitmapBits
CreatePatternBrush CreateBrush CreateBrushIndirect
WM_DISPLAYCHANGE的CreateCompatibleDC(DC内存映射原理)
GetSystemBmenu AppendMenu:插入一个位图菜单GetTextExtentPoint32
LockWindowUpdata (GetDesktopWindow或其他或为空)GetDCEx
设备无关位图:
BITMAPFILEHEADER BITMAPCOREHEADER SetFilePointer SetEndOfFile
的CreateFile GetFileSize CloseHandle的SetCursor每次调用ShowCursor
SetDIBitsToDevice的StretchDIBits主DIB格式和显示方法
CreateDIBitmap(创建)SetDIBits(INIT像素)这两个函数从DIB到DDB
从DDB GetDIBits到DIB
DIB:文件或内存块
DDB:GDI位图对象表示由位图句柄
CreateDIBSection:创建一个DIB,利润归还DIB数据部分,而不是GDI
的句柄(窗口的重要功能:指向设备无关位图,但返回的句柄和操作设备的相关功能可用)显示DIB三种方式
①DIB与SetDIBitsToDevice或将的StretchDIBits直接在屏幕上显示出来,慢
②与CreateDIBitmap和SetDIBits将DIB转换成DDB,然后使用的BitBlt或StretchBlt的显示
③DIB与CreateDIBSection节中创建,然后使用的BitBlt或StretchBlt的显示
调色板:当CreatePalette SelectPalette RealizePalette UpdateColors
本章中未兴趣,看到未来的相关文章再次在网络上学习,:)
文字的字体:
TrueType字体:轮廓字体技术,
的TextOut TabbedTextOut ExtTextOut DrawText的DrawTextEx
SetTextColor SetBKMode SetBkColor SetTextCharacterExtra
GDI字体:点阵列,中风,TrueType字体
设备字体:内置的硬件设备(打印机)
的CreateFont CreateFontIndirect(旋转字体)
SetGraphicsMode SetMapperFlags ModifyWorldTransform字体
EnumFontFamilies SetTextJustification
> GetDialogBaseUnits GetTextExtentPoint32(获取文本的宽度和高度)
程序,需要仔细调试,特别是包装印刷过程
ExtCreatePen(用逻辑画刷)beginPath方法(这两个函数的中间绘制等值线字)EndPath
StrokePath StrokeAndFillPath
图元文件:CreateMetaFile CloseMetaFile DeleteMetaFile / DeleteFile的
PlayMetaFile SetMetaFileBitsEx
本章不感兴趣,去学习,看看网络中的相关条款,后: )
多文档界面:该程序需要仔细的试运行,重要的是一斤
hClient = GetWindow(hFrame,GW_CHILD)
一个窗口类:MDICLIENT
五大功能:DefFrameProc给DefMDIChildProc TranslateMDISysAccel
两种结构:CLIENTCREATESTRUCT(客户端窗口的显示区域包括的帧窗口)
MDICREATESTRUCT(有一个指向这个结构作为一个参数传送给客户WM_MDICREATE窗口的信息,用于创建一个子窗口)
12消息:
WM_MDICREATE子窗口创建消息并返回子窗口句柄
WM_MDIGETACTIVE得到的MDI子窗口的活动子窗口句柄
WM_MDIDESTROY破坏(通过手柄消息实现)
WM_MDIRESTORE恢复状态
WM_MDISETMENU子窗口框架设置菜单
主题:的CreateThread _beginthread
CRITICAL_SECTION EnterCriticalSection的LeaveCriticalSection
DeleteCriticalSection CreateEvent的ResetEvent的WaitForSingleObject
每个线程都有自己的堆栈TlsAlloc TlsSetValue()TlsGetValue TlsFree
的__declspec(线程)用extern“C”的原因(C应资本化! )
DLL:
DLL入口/出口点:DLL_PROCESS_ATTACH等
DLL共享内存:创建DLL的共享部分。的#pragma的data_seg(“共享”)
/段:共享,RWS
调用LoadLibrary FreeLibrary则GetProcAddress函数
声音与音乐:的mciSendString的waveOut ...
享受互联网: ...
__stdcall的为__cdecl的WideCharToMultiByte MultiByteToWideChar
多字节字符集和Unicode:IsTextUnicode有
TCHAR.H _tcslen(wcslen和strlen的)
TCHAR(为wchar_t和char)_T,_TEXT,L
的Unicode / ANSI:lstrlen lstrcpy lstrcpyn lstrcat LSTRCMP LSTRCMPI
调用vsprintf wsprintf wvsprintf _vsntprintf
va_list的,的va_start,va_arg用来,va_end
PlaySound的滚屏ScrollDC BR /> InvalidateRect函数InvalidateRgb
GetTextMetrics(得到直流文本度量)GetTextFace(Set. ..)
GetClientDC来GetWindowDC
SetScrollRange用SetScrollPos SetScrollSizes SetScrollInfo
WM_PAINT:BeginPaint函数调用,使区成直流电有效
的CreateCompatibleDC GetDeviceCaps SetTextAlign
图形渲染功能:与setPixel(GetPixel的)
lineTo的多段线(无填充)/多边形(填充)PolylineTo PolyPolyline弧
> PolyBezier PolyBezierTo 包含arcTo AngleArc多边形绘制
椭圆矩形RoundRect和弦派
个CreatePen CreatePenIndirect GETOBJECT选择对象DELETEOBJECT(HPEN)
SetBkColor SetTextColor SetBkMode SetROP2(GetROP2)SetPolyFillMode
CreateBrushIndirect CreateSolidBrush CreateHatchBrush
CreatePatternBrush CreateDIBPatternBrushPt(对位图创建刷子基)
SetMapMode(GetMapMode)SetWindowExtEx DPtoLP函数LPtoDP函数
SetViewportOrgEx SetWindowOrgEx
区域和剪裁:
FillRect FrameRect InvertRect (矩形都喜欢素色翻转)
SetRect对OffsetRect InflateRect SetRectEmpty CopyRect
IntersectRect(路口)UnionRect IsRectEmpty的PtInRect
CreateRectRgn(当你创建一个区域,得到的句柄地区)CreateRectRgnIndirect CreateEllipticRgn CreateEllipticRgnIndirect
处理CreatePolygonRgn CombineRgn
面积可用于未来四年的绘图功能:FillRgn FrameRgn InvertRgn PaintRgn
(您必须使用DELETEOBJECT(HRGN)删除后无法使用该地区的您创建)
键盘:函数GetKeyState GetAsyncKeyState GetKeyNameText
ScreenToClient ClientToScreen CreateCaret SetCaretPos ShowCaret
windowclass CS | = CS_DBLCLKS;
鼠标:WM_NCHITTEST每次调用ShowCursor GetCursorPos(SetCursorPos)
releaseCapture释放SetCapture函数
SetWindowLong函数(GetWindowLong)SetClassLong(GetClassLong)
SETFOCUS(GETFOCUS)函数GetDlgItem WM_SETFOCUS WM_KILLFOCUS
SystemParametersInfo DrawBoxOutline
定时器:SetTimer的KillTimer函数WM_TIMECHANGE
GetLocalTime(SetLocalTime)GETSYSTEMTIME(SetSystemTime)
GetDateFormat GetLocaleInfo
的getParent GetDlgCtrlID IsWindowVisible
按钮:BS_OWNERDRAW
通知代码:BN_SETFOCUS发送一条消息:BM_SETCHECK BM_SETIMAGE
GetSysColors(SetSysColors)滚屏
按钮抽奖:WM_CTLCOLORBTN从绘画风格:BS_OWNERDRAW WM_DRAWITEM消息
WM_CTLCOLORBTN:很少用
WM_ERASEBKGND:返回TRUE;
WM_PAINT:窗口没有响应
WM_DRAWITEM:自画像
SetClassLong(HWND,GCL_HBRBACKGROUND,(LONG)CreateSolidBrush(...))
WM_CTLCOLORSCROLLBAR(回报背景颜色)
WM_CTLCOLORSTATIC(与SetTextColor和SetBkColor设置前景色和背景色) WM_SYSCOLORCHANGE
文本编辑框:通知码:EN_SETFOCUS EN_KILLFOCUS EN_CHANGE EN_UPDATE
消息:EM_GETSEL EM_SETSEL EM_GETLINECOUNT EM_LINEINDEX
EM_LINELENGTH EM_GETLINE
重绘标志:WM_SETREDRAW(TRUE / FALSE)
列表框:LB_RESETCONTENT LB_DELETESTRING LB_ADDSTRING LB_INSERTSTRING等
强大的消息:LB_DIR
通知代码:LBN_SELCHANGE LBN_KILLFOCUS等GetEnvironmentStrings
菜单和资源:DrawIcon AnsiNext LockResource(LoadResource(FindResource))
CreateMenu AppendMenu DeleteMenu InsertMenu ModifyMenu RemoveMenu BR /> EnableMenuItem IsClipboardFormatAvaliable
DrawMenuBar GetSubMenu来GetMenuItemCount GetMenuItemID CheckMenuItem
GetMenuString GetMenuState DestroyMenu来TrackPopupMenu LoadMenu的SetMenu
快捷键:LoadAccelerators REGISTERHOTKEY TranslateAccelerator的
模态对话框:DialogBox的DialogBoxIndirect DialogBoxParam时处理WM_INITDIALOG消息并在退出时的EndDialog
向子控件CheckRadioButton CheckDlgButton IsDlgButtonChecked 非模态对话框:CreateDialog函数CreateDialogIndirect的ShowWindow SetDlgItemText
消息处理,在主窗口的消息循环中加入:IsDialogMessage会
通用对话框:的GetOpenFileName则GetSaveFileName CHOOSECOLOR
FindText一个replaceText
MSDN示例:使用通用对话框
内存分配:的GlobalAlloc GlobalReAlloc GlobalSize GlobalFree(GlobalHandle(P));
GlobalLock GlobalUnlock CopyMemory
剪辑局:OpenClipboard EmptyClipboard SetClipboardData CloseClipboard
GetClipboardData IsClipboardFormatAvailable EnumClipboardFormats
CountClipboardFormats RegisterClipboardFormat GetClipboardFormatName
剪贴板钩:SetClipboardViewer(HWND) - > WM_DRAWCLIPBOARD )
解开:ChangeClipboardChain
GetClipboardViewer WM_CHANGECBCHAIN WM_DRAWCLIPBOARD
“Window程序设计”一书回顾:??
打印机:CreateDC PRINTDLG STARTDOC起始页尾页页次ENDDOC BR /> EnumPrinters的getVersion(防爆)WM_SETTINGCHANGE消息WM_INITMENUPOPUP
OpenPrinter PrinterProperties CREATEIC GetPrinterDC
SETABORTPROC(使用回调函数来中止打印任务)WM_SETTINGCHANGE
设备相关的位图:
CreateBitmap函数CreateBitmapIndirect
BitBlt函数StretchBlt的SetStretchBltMode的PatBlt
SetBitmapBits GetBitmapBits
CreatePatternBrush CreateBrush CreateBrushIndirect
WM_DISPLAYCHANGE的CreateCompatibleDC(DC内存映射原理)
GetSystemBmenu AppendMenu:插入一个位图菜单GetTextExtentPoint32
LockWindowUpdata (GetDesktopWindow或其他或为空)GetDCEx
设备无关位图:
BITMAPFILEHEADER BITMAPCOREHEADER SetFilePointer SetEndOfFile
的CreateFile GetFileSize CloseHandle的SetCursor每次调用ShowCursor
SetDIBitsToDevice的StretchDIBits主DIB格式和显示方法
CreateDIBitmap(创建)SetDIBits(INIT像素)这两个函数从DIB到DDB
从DDB GetDIBits到DIB
DIB:文件或内存块
DDB:GDI位图对象表示由位图句柄
CreateDIBSection:创建一个DIB,利润归还DIB数据部分,而不是GDI
的句柄(窗口的重要功能:指向设备无关位图,但返回的句柄和操作设备的相关功能可用)显示DIB三种方式
①DIB与SetDIBitsToDevice或将的StretchDIBits直接在屏幕上显示出来,慢
②与CreateDIBitmap和SetDIBits将DIB转换成DDB,然后使用的BitBlt或StretchBlt的显示
③DIB与CreateDIBSection节中创建,然后使用的BitBlt或StretchBlt的显示
调色板:当CreatePalette SelectPalette RealizePalette UpdateColors
本章中未兴趣,看到未来的相关文章再次在网络上学习,:)
文字的字体:
TrueType字体:轮廓字体技术,
的TextOut TabbedTextOut ExtTextOut DrawText的DrawTextEx
SetTextColor SetBKMode SetBkColor SetTextCharacterExtra
GDI字体:点阵列,中风,TrueType字体
设备字体:内置的硬件设备(打印机)
的CreateFont CreateFontIndirect(旋转字体)
SetGraphicsMode SetMapperFlags ModifyWorldTransform字体
EnumFontFamilies SetTextJustification
> GetDialogBaseUnits GetTextExtentPoint32(获取文本的宽度和高度)
程序,需要仔细调试,特别是包装印刷过程
ExtCreatePen(用逻辑画刷)beginPath方法(这两个函数的中间绘制等值线字)EndPath
StrokePath StrokeAndFillPath
图元文件:CreateMetaFile CloseMetaFile DeleteMetaFile / DeleteFile的
PlayMetaFile SetMetaFileBitsEx
本章不感兴趣,去学习,看看网络中的相关条款,后: )
多文档界面:该程序需要仔细的试运行,重要的是一斤
hClient = GetWindow(hFrame,GW_CHILD)
一个窗口类:MDICLIENT
五大功能:DefFrameProc给DefMDIChildProc TranslateMDISysAccel
两种结构:CLIENTCREATESTRUCT(客户端窗口的显示区域包括的帧窗口)
MDICREATESTRUCT(有一个指向这个结构作为一个参数传送给客户WM_MDICREATE窗口的信息,用于创建一个子窗口)
12消息:
WM_MDICREATE子窗口创建消息并返回子窗口句柄
WM_MDIGETACTIVE得到的MDI子窗口的活动子窗口句柄
WM_MDIDESTROY破坏(通过手柄消息实现)
WM_MDIRESTORE恢复状态
WM_MDISETMENU子窗口框架设置菜单
主题:的CreateThread _beginthread
CRITICAL_SECTION EnterCriticalSection的LeaveCriticalSection
DeleteCriticalSection CreateEvent的ResetEvent的WaitForSingleObject
每个线程都有自己的堆栈TlsAlloc TlsSetValue()TlsGetValue TlsFree
的__declspec(线程)用extern“C”的原因(C应资本化! )
DLL:
DLL入口/出口点:DLL_PROCESS_ATTACH等
DLL共享内存:创建DLL的共享部分。的#pragma的data_seg(“共享”)
/段:共享,RWS
调用LoadLibrary FreeLibrary则GetProcAddress函数
声音与音乐:的mciSendString的waveOut ...
享受互联网: ...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询