起名Jquery函数命名难题导致死循环

 

 

http://blog.csdn.net/riklin/article/details/4417247

在应用easyui时遇到以下难题:

 

给textbox添加onchange事件时,为了先测试,习惯性的在点子起名alert,结果有坑。。如下:

 

起名 1

 

 

起名 2

起名 3

 
    看好了,这是XP系统,未装.net。小编的Photoshop学的不太好,把玻璃片弄的太透了些,假使你们有好的图画,再加上那种技术,肯定会如虎生翼。上边就来详细说说它的炮制进程吧: 
    第 一步:在VC陆中运用GDI+:你得从网上弄个GDI+ for
XP的库,大概500K。假若找不到的话,找我QQ要吧,小编会把那个窗口的源程序1起发给你的。把它解压后,将有着文件还包罗子目录中的文件复制到你的项
目目录。在stdafx.h中进入以下代码: 
             #include “gdiplus.h” 

js报以下错误:

            using namespace Gdiplus; 
            #pragma comment(lib,
“gdiplus.lib”) ////请修改为你的.lib文件路径 
    小编的类型名字为Test,所以在TestApp中投入全局变量 
ULONG_PTR gdiplusToken; 
    在BOOL CTestApp::InitInstance()中投入这两行: 
       GdiplusStartupInput gdiplusStartupInput; 
       GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); 
    记住在线程退出后要御掉GDI+,它很占能源的,在int
CTestApp::ExitInstance() 中参与那行: 
      GdiplusShutdown(gdiplusToken); 
    1切准备工作妥善,开首创立窗口了。 

起名 4

    二、制作PNG图像:那不是程序员的事,是丹青的事,不过脚下绘画技能都以本人一位,所以索性连PNG1起教你们做了呢。 
    先开辟Photoshop(简称PS),打开一张背景图,在背景图上选用圆角矩形工具起名 5 画个矩型,再用图层样式调出如下青古铜色玻璃片: 
起名 6 
    什么?怎么个调出去的?你还真以为本人怎么都教你?假诺自己连PS的经过都写上来,那小编几乎写本书得了。体谅一下吗,写教程是内需多量时刻的,所以能省则省。 
    将背景去掉,将玻璃保存成PNG图片,不供给安装任何参数,PNG是机关使用那种与背景溶合透明的,强大吧^_^! 
    再用同①的措施,制作石黄按钮起名 7 ,记住做界面包车型大巴时候,1般要动用1种主色调,在此处自身任由用了下土黑作为主色调,未来网络流行的是鲜紫。文字则不可能用奇骏GB色彩,那样用户不难产生视觉疲劳。作者做这一个界面只是想尝试绿玻璃好不难堪,结果认为多少雅观,现在有空再弄个蓝玻璃试试啊。 
    按钮不必要保留成PNG,因为自个儿不准备将它透明。至于那种“透明控件”的篇章,你在网上1搜一大堆。 
    继续吧!还要做别的3个按钮,“鲜明”的按下效果,“撤消”的拾起和按下效果,在此间笔者就不截图了。 
    美术都消除,开首写代码。 

因为alert是系统内置函数,所以。。。方法改个名后就好了。

    叁、写代码此前,小编先说说工序:先用SetWindowLong将对话框设置成层级窗体,再采用GDI+显示图片。展现成功后再用UpdateLayeredWindow函数进行透明处理。 
    未来难题出来了,你会发觉你本来在窗口上画的控件一概不显得,怎么办吧?小编是在那几个窗口上再盖上另八个会话框,设置成运行窗体那种样式,全体消息都在那几个前景窗体上拍卖。 
    难点又来了,前景窗体盖上去,前面窗口又看不见了,怎么办呢?作者又想了措施,在前景窗体加了透明色,在此处自个儿是用粉中蓝,因为在微型总括机中粉浅影青用的最少,因为它很刺眼。用这些方法的毛病正是你的控件不能够有粉灰绿。 
    最终将多个按钮改成位图按钮即可。 

以上。

    现在来看详细制作进度吧: 
    定义成员变量:在TestDlg.h中定义 
BLENDFUNCTION m_Blend; 
HDC m_hdcMemory; 

 

    改成层级窗体:在BOOL CTestDlg::OnInitDialog()函数中到场如下代码: 
//窗体样式为0x七千0为层级窗体 
DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE); 
SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^0x80000); 

    加载PNG图片: 
//绘制内部存款和储蓄器位图 
HDC hdcTemp=GetDC()->m_hDC; 
m_hdcMemory=CreateCompatibleDC(hdcTemp); 
HBITMAP hBitMap=CreateCompatibleBitmap(hdcTemp,500,500); 
SelectObject(m_hdcMemory,hBitMap); 

//使用GDI+载入PNG图片 
HDC hdcScreen=::GetDC (m_hWnd); 
RECT rct; 
GetWindowRect(&rct); 
POINT ptWinPos={rct.left,rct.top}; 
Graphics graph(m_hdcMemory);   //GDI+中的类 
Image image(L”bk.png”,TRUE);   //GDI+中的类 
graph.DrawImage(&image,0,0,二陆7,154);
//后边七个参数要设置成跟图片相同大小,不然会失真 

    窗口透明贴图: 
//使用UpdateLayerWindow举办窗口透明处理 
HMODULE hFuncInst=LoadLibrary(“User32.DLL”); 
起名,typedef BOOL (WINAPI
*MYFUNC)(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD);           
MYFUNC UpdateLayeredWindow; 
UpdateLayeredWindow=(MYFUNC)GetProcAddress(hFuncInst,”UpdateLayeredWindow”); 
SIZE sizeWindow={267,154}; 
POINT ptSrc={0,0}; 
UpdateLayeredWindow(
m_hWnd,hdcScreen,&ptWinPos,&sizeWindow,m_hdcMemory,&ptSrc,0,&m_Blend,2); 

    使用上述代码后,运营程序,你会发觉你的窗口已经是透明的了,下边实行控件处理: 

    肆、前景窗体 
    新建对话框,画上控件,笔者在此间起名字为COnWindow,随便起的,不要笑小编^_^。 
起名 8 
    读者奇怪的是,那地点怎么未有“用户名、密码”七个Label控件?糟糕意思,因为自个儿的玻璃做的太透,那一个文字在玻璃上曾经很无耻清楚,所以本身干脆用PS描了上边,直接画到前景上去了,就成了那种意义起名 9 ,忽优了你们一下,倒霉意思,快去画吧^_^。 
   
    定义成员变量:在OnWindow.h中定义: 
CBrush m_brush;  //背景画刷 
CBitmapButton m_ok; 
CBitmapButton m_cancel; 

    设置画笔:在在BOOL COnWindow::OnInitDialog()参加一行: 
  m_brush.CreateSolidBrush(智跑GB(25伍,0,25伍));  //背景设置为粉金棕 

    改为层级窗体: 
//SetWindowsLong将窗体设置为层级窗体 
DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE); 
SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle|0x80000); 

    设置透明色: 
//用SetLayeredWindowAttributes设置透明色为0,它比UpdateLayeredWindow的采纳要简明些 
HMODULE hInst=LoadLibrary(“User32.DLL”); 
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); 
MYFUNC SetLayeredWindowAttributes = NULL; 
SetLayeredWindowAttributes=(MYFUNC)GetProcAddress(hInst,
“SetLayeredWindowAttributes”); 
SetLayeredWindowAttributes(this->GetSafeHwnd(),0xff00ff,0,1); 
FreeLibrary(hInst); 

    不要遗忘把窗体前景刷成粉天蓝:在HBRUSH COnWindow::OnCtlColor(CDC*
pDC, CWnd* pWnd, UINT nCtlColor) 音信映射函数中参加代码: 
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
// TODO: Change any attributes of the DC here 
if(nCtlColor=CTLCOLOR_DLG) 
  return m_brush; 
return  CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);   

    未来要把前景窗体和背景窗体育联合会动,那然而关键点: 
    把
前景窗体设置成运营窗体,无标题栏,样式为Popup弹出式。写到这里,作者只得说的是:小编曾想把前景窗体设置成Child,发现前景窗体又被“透明”掉
了,什么都看不见,郁闷呀,所以不得不用OnMove音讯来设计窗体同步了。如若有对窗体机制相比纯熟的高手朋友,希望援救笔者用更好的缓解办法。 

    组合窗口,并保持联合浮动: 
    在TestDlg.h中投入头文件:#include “OnWindow.h”,再定义变量COnWindow
*pChildWnd; 

    在void CTestDlg::OnMove(int x, int y)
参与如下代码,看了然了,那里是CTestDlg透明窗口。矩形的坐标运算你能够本人修改,关键要跟背景对齐: 
CDialog::OnMove(x, y); 
// TODO: Add your message handler code here 
CRect rcWindow;                  // 使用MoveWindow函数的示例 
GetWindowRect(rcWindow); 
rcWindow.bottom-=10; 
rcWindow.left+=10; 
rcWindow.right-=10; 
rcWindow.top+=20; 
pChildWnd->MoveWindow(&rcWindow); 

    创立窗体时:在int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
参加如下代码: 
//创制子窗体 
pChildWnd=new COnWindow(this); 
pChildWnd->Create(IDD_ONWINDOW_DIALOG); 
pChildWnd->ShowWindow(SW_SHOW); 

    你未来来看窗体上从不标题栏吧?你把鼠标移到窗口顶部,还足以壹如既往移动窗口,知道为何吗?因为窗口固然透明了,可是背景窗口的其余控件都是存在的,只是不出示,它还能够照样响应事件,不信你在背景窗口上放上个按钮试试。不错啊?又省掉1部分代码。 

    5、最终,我们来拍卖位图按钮:VC陆的CBitmapButton::LoadBitmaps方法不可能一向贴上十两个人真彩按钮,于是自己将五个真彩色按钮用Acdsee32转换到25六色的,就能够一向载入了,相信你们也没看出来呢? 
    处理成256色后,再在BOOL COnWindow::OnInitDialog() 写入代码: 
//载入按钮位图 
m_ok.LoadBitmaps(IDB_OK1,IDB_OK2); 
m_cancel.LoadBitmaps(IDB_CANCEL1,IDB_CANCEL2); 
m_ok.SubclassDlgItem(IDOK, this); 
m_cancel.SubclassDlgItem(IDCANCEL, this); 
    今后按下按钮只可以关门自个儿,给父窗口发个新闻呢:在void
COnWindow::OnOK()和void COnWindow::OnCancel() 都到场代码:
HWND hWnd=GetParent()->m_hWnd;
::SendMessage(hWnd,WM_CLOSE,0,0);

http://blog.csdn.net/witch\_soya/article/details/6889939

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图