【基本面】
美联储(Fed)联邦公开市场委员会(FOMC)会议纪要和12月美国非农数据却抢占了本周尾盘所有的市场关注。会议纪要意外一致的鹰派态度对市场而言颇有“来不及回味”的感觉,而其后公布的美国非农数据令市场对美国未来的货币宽松愈发的感到弛豫。
主要货币走势方面,美元指数重新站上80.00,收于近一个半月高点;而欧元/美元在重回1.3300之后急挫近300点,并在实际突破1.3000未果后回升;而美/日升势依旧坚不可摧,进一步迈向2年半高点。
【技术面】
天通银:
日线分析经过上周四和周五的大幅下跌完成下跌回抽,年线上方再度跌破年线。运行布林带中轨线下方,开口方向向下;均线系统空头排列,压迫价格;成交量缩量;MACD指标0轴下方绿柱减弱,快慢线走平。KDJ指标交发散。小时图看运行布林带中轨线上方,开口走平预示震荡调整同时上轨线形成对银价压力。成交量缩量;MACD指标0轴上方红柱减弱,快慢线0轴下方45角姿势上升,KDJ指标背离向下勾起。
现货金:
金价周线连续6周的收阴表现,显示空头势能在测试周线布林下轨后动能有所衰减,而本周收取的一根大型外包十字星亦显示多空短期处于平衡状态。预计未来1-2周内金价很有可能波动于1625-1700美元/盎司区间之内。进一步延伸性的市场行情需要见到上述区间突破之后才有可能出现。
日线金价主要受制于美国财政悬崖及QE政策影响,导致金价短时期走出冲高1692回落1625的过山车走势,主力上行关键承压于MA200均线1662/1666位,整体来看先涨后跌的走势使得后市金价继续承压的概率较大。
综上所述:短期走势金价主要受制于美经济和政治面影响,导致金价围绕1700-1625区域反复震荡,主线趋势依然偏弱,若后市企稳1700整数关口,方可确立底部形成。
【部分操作建议】
天通银:
1.白天上方见到6110-6130附近做空,止损40个点,目标看6050-6020附近!
2.下方可在6000-5990附近做多,止损40个点,目标看6050-6080附近!
3.白天上方强势突破6160回调到61300附近做多,止损40个点,目标看6150-6180附近,反手可做空下来!
4.下方有效跌破5980做空,止损40个点,目标看5950-5920附近!
现货金:
1.上方初次见到1660附近做空,止损4美金,目标回看1655-1652附近!
2.白天下方可在1652附近做多,止损4美元,目标1655--1658附近!
3.白天强势突破1665回调到1662附近做多,止损1657.2,目标看1665-1668附近破位了持有!
4.再次跌破1648做空,止损1652上,目标1645--1642破位了可以减仓继续持有!
【今日关注】
17:30欧元区1月Sentix投资者信心指数
18:00欧元区11月生产者物价指数月率
18:00欧元区11月生产者物价指数年率
23:00加拿大12月Ivey采购经理人指数(季调后)
上一篇《Windows界面编程第二篇 半透明窗体》介绍了先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用SetLayeredWindowAttributes调整窗体的透明度。本篇将使用这二个函数来完成另一个实用的功能——异形窗口(异形窗体)。
异形窗口的原理很简单,首先加载一张位图画刷作窗口背景,然后设置透明色就可以使得窗口由矩形变成任意形状。这样使得窗口的显示更加美观。
下面先简单介绍下Win32 SDK方式创建窗口的流程(按《Windows程序设计》中的大体流程):
1.设置WNDCLASS类型的变量,这个变量将描述窗口的风格、窗口消息处理函数、程序图标、光标、窗口背景画刷等待。
2.使用RegisterClass将WNDCLASS类型的变量注册下。
3.使用CreateWindow或CreateWindowEx创建窗口,这里可以设置窗口的初始位置、初始大小、扩展属性等等。
4.通过ShowWindow和UpdateWindow将窗口显示出来。
5.窗口显示完成后,在WinMain()函数中添加消息处理:
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
通过这五步就完成了一个窗口的创建了。
对于窗口消息函数,一般只要在WM_DESTROY消息中调用下PostQuitMessage(0);其它的消息都可以使用默认消息处理函数DefWindowProc。
对于异形窗口,可以在WM_CREATE即窗口初始化时设置好透明色就完成了窗口形状的改变,不过为了支持鼠标对窗口的拖曳,还要在WM_LBUTTONDOWN消息中加入:
PostMessage(hwnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
这样,异形窗口就可以在屏幕上像普通窗口一样的移动了。
完整的源代码如下所示(下载地址:http://download.csdn.net/download/morewindows/4966815):
// 异形窗口1 窗口背景使用位图画刷再指定透明色 //By MoreWindows-(http://blog.csdn.net/MoreWindows) #include <windows.h> const char szAppName[] = "异形窗口1 MoreWindows-(http://blog.csdn.net/MoreWindows)"; /* * 函数名称: GetWindowSize * 函数功能: 得到窗口的宽高 * hwnd 窗口句柄 * pnWidth 窗口宽 * pnHeight 窗口高 */ void GetWindowSize(HWND hwnd, int *pnWidth, int *pnHeight); /* * 函数名称: InitBitmapWindow * 函数功能: 位图窗口初始化 * hinstance 进程实例 * hBitmap 位图句柄 * nCmdshow 显示方式-与ShowWindow函数的第二个参数相同 */ BOOL InitBitmapWindow(HINSTANCE hinstance, HBITMAP hBitmap, int nCmdshow); // 位图窗口消息处理函数 LRESULT CALLBACK BitmapWindowWndPrco(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParm); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { //设置窗口背景画刷为图片画刷,再指定透明颜色即可以创建透明区域。 HBITMAP hBitmap; hBitmap = (HBITMAP)LoadImage(NULL, "Kitty.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); if (hBitmap == NULL) { MessageBox(NULL, "位图加载失败", "Error", MB_ICONERROR); return 0; } if (!InitBitmapWindow(hInstance, hBitmap, nCmdShow)) return 0; MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } DeleteObject(hBitmap); return msg.wParam; } BOOL InitBitmapWindow(HINSTANCE hinstance, HBITMAP hBitmap, int nCmdshow) { HWND hwnd; WNDCLASS wndclass; wndclass.style = CS_VREDRAW | CS_HREDRAW; wndclass.lpfnWndProc = BitmapWindowWndPrco; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hinstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = CreatePatternBrush(hBitmap);//位图画刷 wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, "Program Need Windows NT!", "Error", MB_ICONERROR); return FALSE; } BITMAP bm; GetObject(hBitmap, sizeof(bm), &bm); hwnd = CreateWindowEx(WS_EX_TOPMOST, szAppName, szAppName, WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, bm.bmWidth, bm.bmHeight, NULL, NULL, hinstance, NULL); if (hwnd == NULL) return FALSE; ShowWindow(hwnd, nCmdshow); UpdateWindow(hwnd); return TRUE; } LRESULT CALLBACK BitmapWindowWndPrco(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParm) { static HDC s_hdcMem; static HBRUSH s_hBackBrush; switch (message) { case WM_CREATE: {
Windows界面编程第二篇半透明窗体
上一篇《Windows界面编程第一篇 位图背景与位图画刷》介绍了通过WM_CTLCOLORDLG消息来来设置对话框的背景以及位图画刷的使用。本篇将介绍动态调节窗体透明度的方法。
调节窗体透明度可以先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用来SetLayeredWindowAttributes指定窗体的透明度。这样就可以在程序运行时动态的调节窗体的透明度了。
下面先介绍下SetWindowLong和SetLayeredWindowAttributes函数。
SetWindowLong可以用来设置窗口的一些属性,其函数原型如下:
LONGSetWindowLong(
HWNDhWnd,
int nIndex,
LONGdwNewLong
);
第一个参数表示窗口句柄。
第二个参数代表要设置的哪一种值,如GWL_STYLE表示将设置窗口的风格,这个参数还可以取GWL_EXSTYLE,GWL_WNDPROC,DWL_DLGPROC,GWL_HINSTANCE,GWL_USERDATA等等。
第三个参数表示要设置的值。
比如要设置对话框也能够可调节窗口大小,可以用:
// 设置对话框大小可调节
SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) | WS_SIZEBOX);
SetLayeredWindowAttributes在MSDN上解释如下:
The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.
其函数原型为:
BOOLSetLayeredWindowAttributes(
HWNDhwnd,
COLORREFcrKey,
BYTEbAlpha,
DWORDdwFlags
);
第一个参数表示窗口句柄。
第二个参数表示透明色。
第三个参数表示透明度。
第四个参数表示函数将完成什么样的功能,设置成LWA_COLORKEY表示为窗口指定了透明色,设置成LWA_ALPHA表示将调整窗口的透明度,可以同时设置这两种功能。
程序代码还将用到Slider控件,这种控件可以有如下操作:
1.通过SendMessage + TBM_SETRANGE来设置滑块变化的范围。
2.通过SendMessage + TBM_SETPOS来设置滑块当前位置。
3.通过SendMessage + TBM_GETPOS来获得滑块当前位置。
4.当滑块位置发生变化时,在其父窗口中通过WM_HSCROLL或WM_VSCROLL来响应消息。
下面给出完整的源代码(下载地址:http://download.csdn.net/download/morewindows/4947386)
// 可变透明度窗体 先加上WS_EX_LAYERED属性再SetLayeredWindowAttributes设置透明度 //By MoreWindows-(http://blog.csdn.net/MoreWindows) #include <windows.h> #include <commctrl.h> #include "resource.h" const char szDlgTitle[] = "可变透明度窗体 MoreWindows-(http://blog.csdn.net/More