非常好的屏保代码仅供参考
非常好的屏保代码,可供学习应用参考。
#include "stdafx.h"
#include "B14.h"
#include "B14Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CB14App
BEGIN_MESSAGE_MAP(CB14App, CWinApp)
//{{AFX_MSG_MAP(CB14App)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CB14App construction
CB14App::CB14App()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
如何使用滑块控件可以在滑块的值变动时使滑块自动回传。
AJAX Control Toolkit 中的滑块控件提供了一个可以用鼠标来控制的图形滑块。可以在滑块的值变动时使滑块自动回传。
步骤
为使滑块变动时自动回传,需要对下面两个文本框设置属性 AutoPostBack="true" :其自身将变成滑块的文本框,以及保存滑块位置的文本框。为此,需要下面的标记:
复制代码
<asp:TextBox ID="Slider1" runat="server" AutoPostBack="true" />
<asp:TextBox ID="SliderValue" runat="server" AutoPostBack="true" />
ASP.NET AJAX Control Toolkit 中的SliderExtender 控件对这两个文本框分配滑块功能 :
复制代码
<ajaxToolkit:SliderExtender ID="se1" runat="server"
TargetControlId="Slider1" BoundControlID="SliderValue" />
另外 ,稍后将使用一个标签元素来通知用户有一次回传 :
复制代码
<asp:Label ID="LastUpdate" runat="server" />
最后 ,使用ASP.NET AJAX 的ScriptManager 控件加载所需的JavaScript 以使Control Toolkit 生效 :
复制代码
<asp:ScriptManager ID="asm" runat="server" />
当滑块回传时 ,在服务器端可以捕获并响应这个事件 :
复制代码
<script runat="server">
Sub Page_Load()
If Page.IsPostBack Then
LastUpdate.Text = "Last update: " & DateTime.Now.ToLongTimeString()
End If
End Sub
</script>
各种消息框编写的代码
各种消息框的的应用1 创建一个DLG程序
2 添加5个新的对话框资源ID分别为:MsgBoxSimple,MsgBoxOption,MsgBoxCustom,并调整其大小使他们尺寸一样
3 为2中所添加的对话框创建新的类
class CPageSimple : public CPropertyPage
class CPageOption : public CPropertyPage
class CPageCustom : public CPropertyPage
保存在property.h和property.cpp中。
4 在ShowBmpInPropertyBtnAreaDlg.h中加入
#i nclude "property.h"
...
public:
CPropertySheet m_MyPropertySheet; //定义属性表变量
CPageSimple m_page1; //以下定义属性页成员变量
CPageOption m_page2;
CPageCustom m_page3;
5 在对话框IDD_MESSAGEBOXES模板中加入一个Picture控件,ID设为IDC_PROPSHEET,并调整其大小使其与对话框MsgBoxSimple大小相似
6 在CMessageBoxesDlg::OnInitDialog()中加入
//属性表和属性页的成员变量我已经在头文件中定义过了
//现在把属性页加入到属性表中
m_MyPropertySheet.AddPage(&m_page1);
m_MyPropertySheet.AddPage(&m_page2);
m_MyPropertySheet.AddPage(&m_page3);
//显示非摸态的属性表
m_MyPropertySheet.Create(this, WS_CHILD | WS_VISIBLE, 0);
//当对话框搜索下一个Tab项时,WS_EX_CONTROLPARENT标记避免了死循环发生的可能性
//他可以让对话框搜索到属性表中的子窗体控件,就象对话框窗体上的其他普通控件一样。
m_MyPropertySheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);
//允许用户TAB键切换到属性表
m_MyPropertySheet.ModifyStyle( 0, WS_TABSTOP );
//显示属性表
CRect rcSheet;
GetDlgItem( IDC_PROPSHEET )->GetWindowRect( &rcSheet );
ScreenToClient( &rcSheet );
m_MyPropertySheet.SetWindowPos( NULL, rcSheet.left-7, rcSheet.top-7, 0, 0,
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE );
7 添加一些按钮,映射各按钮的单击消息,并为响应函数编写代码如下
void CPageSimple::OnSimplestBtn()
{
MessageBox("这是最最简单的消息框");
}
void CPageSimple::OnSimpleBtn()
{
AfxMessageBox("另一个简单的消息框");
}
void CPageOption::OnOkBtn()
{
MessageBox("仅仅一个按钮确定的消息框",
"信息提示消息框",
MB_OK|MB_ICONINFORMATION);
m_Message = "你只是确认了一下";
UpdateData(FALSE);
}
void CPageOption::OnOkcancelBtn()
{
int Response;
Response =
MessageBox("在这个消息框中你可以选择确定和取消"
"\n\n你也可以在此写下对行信息文本"
"\n这是你的权利",
"选择消息框",
MB_OKCANCEL|MB_ICONASTERISK);
if( Response == IDOK )
{
m_Message = "你选择了确定";
UpdateData(FALSE);
}
else
{
m_Message = "你取消了";
UpdateData(FALSE);
}
}
void CPageOption::OnYesnoBtn()
{
int Response;
Response =
MessageBox("你吃过了吗?我意思是指从昨天到现今",
"信息提示", MB_YESNO|MB_ICONQUESTION);
if( Response == IDYES )
{
m_Message = "那么,我不需要再给你什么了";
UpdateData(FALSE);
}
else
{
m_Message = "那么走吧,正好我也没有吃,咱们一块去吃火锅!";
UpdateData(FALSE);
}
}
void CPageOption::OnYesnocancelBtn()
{
int Response;
Response =
MessageBox("当你删除一个目录的时候,或者一个文档改动后,"
"\n退出程序的时候,这个消息框就会出现",
"文档保存提示消息框",
MB_YESNOCANCEL|MB_ICONWARNING);